如果选择带有值的下拉选项,则更改文本,否则不会更改文本

时间:2017-09-25 14:30:09

标签: javascript jquery html

如果下拉菜单中的选定值为tribute_type_value1,我需要更改标签,否则我不希望它更改值。

无论选择什么,下面的脚本都会更改值,但是如果选择了tribute_type_value1,我只希望更改文本。如果选中它,则选择tribute_type_value2,文本应恢复为原始。



$("#tribute_type").change(function () {
  if ($("#tribute_type").value = "tribute_type_value1") {
    $("label[for=tribute_notify_recip_street1name]").text("Person to Notify Street 1:");
  } 
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<select name="tribute_type" id="tribute_type" size="1">
  <option></option>
  <option value="tribute_type_value1">In Memory of</option>
  <option value="tribute_type_value2">In Honor of</option>
</select>

<label for="tribute_notify_recip_street1name">Honoree Street 1:</label>
&#13;
&#13;
&#13;

3 个答案:

答案 0 :(得分:2)

首先,正如Andy所写,你需要修复if条件($("#tribute_type").value == "tribute_type_value1"应该是= - 注意额外的var defaultText = $("label[for=tribute_notify_recip_street1name]").text(); $("#tribute_type").change(function () { if ($("#tribute_type").value == "tribute_type_value1") { $("label[for=tribute_notify_recip_street1name]").text("Person to Notify Street 1:"); } else { $("label[for=tribute_notify_recip_street1name]").text(defaultText); } }); )。

其次,对于文本还原,您需要先存储原始文本,然后替换它,以便稍后还原它:

Base

答案 1 :(得分:1)

您在if语句中缺少=,目前您正在指定一个始终等于true的值。

你还必须在jquery选择器上使用val()方法来获取元素的值。

$("#tribute_type").change(function () {
if ($("#tribute_type").val() == "tribute_type_value1") {
  $("label[for=tribute_notify_recip_street1name]").text("Person to Notify Street 1:");
} else {
  $("label[for=tribute_notify_recip_street1name]").text("Honoree Street 1:");
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<select name="tribute_type" id="tribute_type" size="1">
<option></option>
<option value="tribute_type_value1">In Memory of</option>
<option value="tribute_type_value2">In Honor of</option>

</select>

<label for="tribute_notify_recip_street1name">Honoree Street 1:</label>

答案 2 :(得分:1)

这是:

&#13;
&#13;
$("#tribute_type").change(function () {
  if ($("#tribute_type").val() === "tribute_type_value1") {
    $("label[for=tribute_notify_recip_street1name]").text("Person to Notify Street 1:");
  } else {
    $("label[for=tribute_notify_recip_street1name]").text("Honoree Street 1:");
  }
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<select name="tribute_type" id="tribute_type" size="1">
  <option></option>
  <option value="tribute_type_value1">In Memory of</option>
  <option value="tribute_type_value2">In Honor of</option>
</select>

<label for="tribute_notify_recip_street1name">Honoree Street 1:</label>
&#13;
&#13;
&#13;

第一个问题是在这一行:if ($("#tribute_type").value = "tribute_type_value1") {。您应该比较===,而不是分配=。第二个问题是value用法:在jQuery中,您只需使用val()