也许你也从问题中理解,我正试图触发一个发生在隐藏输入上的变化。
<input type="hidden" name="secret" id="secret" onchange="alert(MSG);" value="0" />
下面,我加载一些数据到一个div,这也是隐藏的,其中加载是用jQuery完成的,输入值改为1。警报框没有出现!!
加载html:
$('.somediv').load('ajax.php?changesecret=yes');
更改来自php
<script type="text/javascript">
$("#secret").val(1);
</scipt>
有什么想法吗,我怎样才能触发这个变化?
如何在更改值后手动触发事件?
<script type="text/javascript">
$("#secret").val(1).trigger('change');
</scipt>
你可以在javascript中像这样处理:
$.get('ajax.php',
{
changesecret: 'yes'
},
function (data) // This gets the data back from ajax.php
{
$('.somediv').html(data);
alert(MSG);
}
);
通过jQuery代码对输入进行的任何更改都不会触发change
事件,除非您手动触发它。试试这些:
$("#secret").val(1).trigger('change');
或
$("#secret").val(1).change();
节选自jQuery文档
如果字段失去焦点而内容没有改变,事件未被触发。要手动触发事件,请应用.change()不带参数:
$('#other').click(function() { $('.target').change(); });