我这里有一个带有ajax / json的Jquery代码。首先,我将讨论流程。我有3个文本框,我的item
文本框通过ajax将其值传递给auto-complete.php以获取它的详细信息。返回值是邮寄或放入mode
文本框中。如果帖子值为1或2,则number
文本框应更改为css为display:none
。但是问题不起作用,我将number
文本框设置为readonly。当我直接更改number
文本框的值时,更改功能正在运行。当值为后置值时,为什么不工作?
<script>
$(document).ready(function() {
$("#number").css("display","none");
$(document).on('change','#mode',function(){
if($("#mode").val() =="1"){
$("#number").css("display","");
} else if($("#mode").val() =="2"){
$("#number").css("display","");
} else {
$("#number").css("display","none");
}
return true;
});
});
</script>
<input name="item" id="item" type="text"/>
<input name="mode" id="mode" type="text"/>
<input name="number" id="number" type="text" readonly />
<script type="text/javascript">
$(document).ready(function()
{
$('#item').change(function()
{
var item= $("#item").val();
$.ajax({
type: "POST",
url: "autocomplete-ajax.php",
data :"item="+item,
dataType:'json',
type:'POST',
success:function(data){
var mode=data.mode;
//send to element ID
$('#mode').val(mode);
}
});
return false;
});
});
</script>
答案 0 :(得分:0)
使用JavaScript更改值时,它不会触发事件。
一个简单的解决方法是在更新值后自己触发事件。
success:function(data){
var mode=data.mode;
//send to element ID
$('#mode').val(mode).change();
/* OR */
$('#mode').val(mode).trigger('change');
}