如何在不使用span标签的情况下给*添加颜色

3

我正在使用WordPress并使用Event Plus插件,该插件使用表单。有些字段是预定义的,有些字段可以使用自定义功能创建。我的要求是,我希望显示必填字段*的颜色为红色。而且我不能使用标签,因为它会导致表单验证消息出现问题。我只想让*以红色显示。我该如何使用CSS实现。

以下是该表单:

<form name="regform" class="evrplus_regform" method="post" action="https://manresa-sj.com/evrplus_registration/?" onsubmit="mySubmit.disabled = true;
       return validateForm(this)">
  <ul>
    <li>
      <label for="fname">First Name*</label>
      <span class="fieldbox"><input type="text" id="fname" name="fname" value=""></span>
    </li>
    <li>
      <label for="lname">Last Name*</label>
      <span class="fieldbox"><input type="text" id="lname" name="lname" value=""></span>
    </li>
    <li>
      <label for="email">Email Address*</label>
      <span class="fieldbox"><input type="text" id="email" name="email" value=""></span>
    </li>
    <li title="">
      <label for="question-4138">Name and Date of Retreat*</label>
      <span class="fieldbox"><input type="text" class="r" id="TEXT_4138" name="TEXT_4138" size="40" title="Name and Date of Retreat*" value="" disabled="disabled"></span>
    </li>
    <li title="">
      <label for="question-4139">Is this is your first retreat there*</label>
      <span class="radio"><input id="SINGLE_4139_0" class="r" name="SINGLE_4139" title="Is t" type="radio" value="Yes"> Yes</span><span class="radio"><input id="SINGLE_4139_1" class="r" name="SINGLE_4139" title="Is t" type="radio" value="No"> No</span> 
    </li>
    <li title="">
      <label for="question-4140">Title: Mr, Mrs, Ms….</label>
      <span class="fieldbox"><input type="text" id="TEXT_4140" name="TEXT_4140" size="40" title="Title: Mr, Mrs, Ms...." value=""></span>
    </li>
    <li title="">
      <label for="question-4141">Nickname</label>
      <span class="fieldbox"><input type="text" id="TEXT_4141" name="TEXT_4141" size="40" title="Nickname" value=""></span>
    </li>
    <li title="">
      <label for="question-4142">Suffix: MD, Sr….</label>
      <span class="fieldbox"><input type="text" id="TEXT_4142" name="TEXT_4142" size="40" title="Suffix: MD, Sr...." value=""></span>
    </li>
    <li title="">
      <label for="question-4143">Birthday</label>
      <span class="fieldbox"><input type="text" id="TEXT_4143" name="TEXT_4143" size="40" title="Birthday" value=""></span>
    </li>
    <li title="">
      <label for="question-4144">Profession</label>
      <span class="fieldbox"><input type="text" id="TEXT_4144" name="TEXT_4144" size="40" title="Profession" value=""></span>
    </li>
    <li title="">
      <label for="question-4145">Spouse’s Name</label>
      <span class="fieldbox"><input type="text" id="TEXT_4145" name="TEXT_4145" size="40" title="Spouse's Name" value=""></span>
    </li>
    <li title="">
      <label for="question-4146">Parish Name</label>
      <span class="fieldbox"><input type="text" id="TEXT_4146" name="TEXT_4146" size="40" title="Parish Name" value=""></span>
    </li>
    <li title="">
      <label for="question-4147">Home Phone*</label>
      <span class="fieldbox"><input type="text" class="r" id="TEXT_4147" name="TEXT_4147" size="40" title="Home Phone*" value=""></span>
    </li>
    <li title="">
      <label for="question-4148">Mobile Phone</label>
      <span class="fieldbox"><input type="text" id="TEXT_4148" name="TEXT_4148" size="40" title="Mobile Phone" value=""></span>
    </li>
    <li title="">
      <label for="question-4149">Business Phone</label>
      <span class="fieldbox"><input type="text" id="TEXT_4149" name="TEXT_4149" size="40" title="Business Phone" value=""></span>
    </li>
    <li title="">
      <label for="question-4150">Contact in case of Emergency</label>
      <span class="fieldbox"><input type="text" id="TEXT_4150" name="TEXT_4150" size="40" title="Contact in case of Emergency" value=""></span>
    </li>
    <li title="">
      <label for="question-4151">Relationship to you</label>
      <span class="fieldbox"><input type="text" id="TEXT_4151" name="TEXT_4151" size="40" title="Relationship to you" value=""></span>
    </li>
    <li title="">
      <label for="question-4152">Address*</label>
      <span class="fieldbox"><input type="text" class="r" id="TEXT_4152" name="TEXT_4152" size="40" title="Address*" value=""></span>
    </li>
    <li title="">
      <label for="question-4153">City*</label>
      <span class="fieldbox"><input type="text" class="r" id="TEXT_4153" name="TEXT_4153" size="40" title="City*" value=""></span>
    </li>
  </ul>
</form>


2
我发现了一个更好的hack答案的重复问题。https://dev59.com/q2Up5IYBdhLWcg3wNFar - Denish Gandhi
使用CSS是无法实现的,因为没有:last-letter伪选择器(虽然有:first-letter但对你没有用)。此外,RTL hack只适用于已经将标签反向编写的情况,这是一种非常糟糕的hack(如果您可以改变字母的方向,也可以在*周围添加一个<span>)。 - dingo_d
3个回答

3
你可以使用 jQuery
  $(document).ready(function(){
    $("label").each(function(){
    var labelValue = $(this).text();
    if(labelValue.includes("*")){
        $(this).addClass("required");
      $(this).text(labelValue.replace("*",""));
    }
  });
});

以及 CSS

.evrplus_regform label.required:after{
  content:"*";
  color:red;
}

请在这里自行尝试。

纯CSS方式:

只需将required类添加到所需的标签上,并使用上面的css即可。

<label for="fname" class="required">First Name</label>

我只想让*变成红色,而不是整个标签。 - Shahzad Intersoft
没有任何标签的情况下,无法仅为*添加红色。 - Jared Chu
1
没有纯CSS的方法可以做到这一点,上面的答案可能是最好的解决方案。 - Jerad Rutnam
@JeradRutnam 谢谢,但我找到了一种纯CSS的方法来做这件事。 - Jared Chu
@JaredChu,同意,只需要删除“*”并添加“required”类即可。 :) - Jerad Rutnam
显示剩余2条评论

1
你可以尝试这个,
    <style>
    label[for="fname"]:after, label[for="lname"]:after, label[for="email"]:after  { 
content: "* "; color:red;
 }
    </style>

为什么这不是被接受的答案,它完全是 CSS! - brandito

0
  <label for="fname">First Name<font color=red>*</font></label>

试一下


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接