将选项文本而不是选项值传递给文本字段

时间:2012-12-17 14:26:14

标签: javascript jquery

我会将多个字段的值传递给文本字段。有一个问题,选择选项,它的值是0和1,我的问题是如何确保它传递选项文本而不是0和1?这意味着通过MYR而不是0和SGD而不是1?

http://jsfiddle.net/e2ScF/64/

HTML:

<select id="Salary_para1">
  <option value="">Choose...</option>
  <option value="0" selected>MYR</option>
  <option value="1" >SGD</option>
</select>
<input id="Salary_value" type="text"/>
+ <input type="checkbox" id="Salary_para2" name="Salary_para2" value=" + Allowance"  />Allowance<br/>
<input type="text" id="targetTextField" name="targetTextField" size="31" tabindex="0" maxlength="99" value="">

CODE:

$(function() {
  setTarget();
  $("#Salary_para1,#Salary_para2").change(setTarget);
  $("#Salary_value").keyup(setTarget);

  function setTarget() {
    var tmp = $("#Salary_para1").val();
    tmp += $("#Salary_value").val();
    tmp += $("#Salary_para2:checked").val() || '';
    $('#targetTextField').val(tmp);
  }
});

4 个答案:

答案 0 :(得分:3)

要获取文本而不是下拉列表中所选内容的值,您必须定位所选选项并从该元素中获取文本:

var tmp = $("option:selected", "#Salary_para1").text();

FIDDLE

答案 1 :(得分:2)

是否有任何理由无法更改标记,因此该选项的值等于选项的文本。 例如:

<option value="MYR" selected>MYR</option>

如果您无法更改标记,则可以使用jQuery text方法获取选项的文本。

var tmp = $("#Salary_para1 option:selected").text();

答案 2 :(得分:0)

我会这样做 -

var tmp = $('option:selected', '#Salary_para1').text();

答案 3 :(得分:0)

的document.getElementById( 'ID')。value.select = [位置]