将输入id作为jquery函数参数传递

时间:2015-10-07 19:51:19

标签: javascript jquery

我是jQuery的新手。

我正在尝试创建一个可重用的函数来替换输入字段的文本。

我将要更改的字段作为一个参数传递,将新文本作为另一个参数传递。

我想我会用一些单选按钮试试。

HTML

<label>
<input type="radio" name="optradio" onClick="replaceText(txt_recipient, 'All')" value="0" checked>All</label>
<label>
<input type="radio" name="optradio" onClick="replaceText(txt_recipient, 'Geo')" value="1">Geographical Area</label>
<label>
<input type="radio" name="optradio" onClick="replaceText(txt_recipient, '')" value="2">Specific User</label> 
<input type="text"id="txt_recipient" name="txt_recipient" value="All" />

JS

function replaceText(field, newtext) {
    document.getElementById(field).text(newtext);
};  

我最初玩弄了

的想法
 function replaceText(field, newtext) {
          $(field).text(newtext);  
      };

但这似乎也不起作用。帮助

3 个答案:

答案 0 :(得分:3)

field是实际元素,因此只需设置输入value属性。

function replaceText(field, newtext) {
    field.value = newtext;
}

DEMO:http://jsfiddle.net/039v0wst/1/

使用jQuery

function replaceText(field, newtext) {
    $(field).val(newtext);
}

DEMO:http://jsfiddle.net/rgen7vLv/1/

答案 1 :(得分:0)

不再建议在HTML属性中内联声明事件处理程序。

使用更现代的语法,我将包含一个指定目标文本的数据属性,使用data属性中的字符串更新目标。

$('input[type="radio"]').change(function() {
  $("#txt_recipient").val($(this).data("text"));
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<label>
<input type="radio" name="optradio" data-text="All" value="0" checked>All</label>
<label>
<input type="radio" name="optradio" data-text="Geo" value="1">Geographical Area</label>
<label>
<input type="radio" name="optradio" data-text="" value="2">Specific User</label> 
<input type="text"id="txt_recipient" name="txt_recipient" value="All" />

答案 2 :(得分:0)

首先给出唯一的名称:

<input type="radio" name="optradio1" onClick="replaceText(txt_recipient, 'All')" value="0" checked>All</label>

地理区域

然后是js

$('input[name$="optradio1"]').val("newtext")