文本框更改事件不会使用其他方法

时间:2015-08-07 05:29:17

标签: javascript jquery textbox onchange

我需要在使用change事件更改文本框的值时触发事件。

HTML

'<select onchange="ChooseContact(this)">
 <option value='1'>1</option>
 <option value='2'>2</option></select>
 <input id="friendName">'

JS

function ChooseContact(data) {

document.getElementById ("friendName").value = data.value;

}

 $("#friendName").change(function(){
   alert("The text has been.");
  });

$('#friendName').bind('input propertychange', function() {
       alert("The text has been changed.");
});

这里我尝试更改选择值附加到文本。它会工作正常。

文本框更改事件未尝试使用input propertychange

进行尝试

如果有人知道原因请在这里分享。

I tried

2 个答案:

答案 0 :(得分:1)

由于您是以编程方式更改值,因此更改事件不会自动触发,而是可以手动触发

&#13;
&#13;
function ChooseContact(data) {
  $('#friendName').val(data.value).change()
}

$("#friendName").change(function() {
  alert("The text has been.");
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<select onchange="ChooseContact(this)">
  <option value='1'>1</option>
  <option value='2'>2</option>
</select>
<input id="friendName">
&#13;
&#13;
&#13;

答案 1 :(得分:0)

您可以使用以下方式手动触发事件:

$i = 0;
$res = [];
for($i=0;$i<$arr[1].length;$i++){
   for($j=0;$j<$arr[1][$i].length;$j++){
       $res[$arr[1][$i].'-'.$arr[2][$i] = $arr[1][$i][$j].'-'.$arr[2][$i][$j];
       $i++;
   }
}