简体   繁体   中英

Jquery change isn't working after ajax post value received

I have here Jquery code with ajax/json. First i will discuss the flow. I have 3 textboxes, my item textbox pass it's value to auto-complete.php through ajax to get it's details. The return value is post or place into mode textbox. And if the post value is 1 or 2 the number textbox should change is css into display:none . But the problem this not working, I set the number textbox into readonly. The change function is working when I change directly the value of number textbox. Why isn't working when the value is post value?

<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>

When you change the value using JavaScript it won't trigger events.

A simple fix is to trigger the event yourself after you update the value.

success:function(data){
    var mode=data.mode;
    //send to element ID
    $('#mode').val(mode).change();
    /* OR */
    $('#mode').val(mode).trigger('change');
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM