2013-04-18 30 views
1

。當我通過Javascript更改值時,jquery中的更改調用不起作用。jQuery的.change功能不工作通過javascript

例如:

$(document).ready(function() { 
    $(function() { 
     $("select#product").change(function() { 
      if (document.all("fatcaSearchDO.bankId").disabled.value = true) { 
       fnFieldEnableClass(document.all("fatcaSearchDO.bankId")); 
      } 
      $.ajax({ 
       type: 'GET', 
       url: 'ViewHistoryDataAction.do', 
       data: { 
        product: $(this).val() 
       }, 
       dataType: 'JSON', 
       cache: false, 
       success: function (j) { 
        var options = ''; 
        for (var k = 0; k < j.length; k++) { 
         options += '<option value="' + j[k] + '">' + j[k] + '</option>'; 
        } 
        $("select#BankID").html(options); 
       } 
      }); 
     }); 
    }); 
}); 




<html:select name="ViewHistoryForm" property="fatcaSearchDO.bankId" styleClass="login-textbox" onchange="fnGlobalChange();" onclick="checkRadio('1')" onfocus = "checkRadio('1')" styleId="BankID" style="width=250"> 

<html:select name="ViewHistoryForm" property="fatcaSearchDO.product" styleClass="login-textbox" onchange="fnGlobalChange();" onclick="checkRadio('1')" onfocus = "checkRadio('1')" styleId="product" style="width=250"> 

這裏的時候,我試圖改變下降的「產品」的呼叫行動,並填充相應的銀行ID值的下降。現在,當我嘗試通過JavaScript更改「產品」的值時,例如

<input type="button" onclick="changeProd()"> 

function changeProd(){ 
    document.all("fatcaSearchDO.product").value='CC'; 

} 

更改功能不起作用。

+0

請人編輯代碼/問題,因爲我已經失去了我的榮幸做:( –

+0

@ The-Val已經:) – silentw

+0

嘗試並使用 '$(「select#product」)。live('change',function(){// CODE GOES HERE});' – Roger

回答

1

當您通過javascript更改輸入字段的值時,更改事件將不會被觸發。

您需要觸發更改事件手動

$("#fatcaSearchDO.product").trigger('change') 

例如:

function changeProd(){ 
    $("#fatcaSearchDO.product").val('CC').trigger('change'); 
} 
0
$(document).ready(function() { 
    // Handler for .ready() called. 
}); 

等效於調用:

$(function() { 
    // Handler for .ready() called. 
}); 

請使用其中之一。

+0

是的,但這不是問題。 –

0

爲什麼不把change內部匿名函數到單獨定義的函數,所以你可以做這樣的:

function changeHandler(element) { 
    // code code code 
    value = element.val(); 
} 

$(something).change(function() { 
    changeHandler($(this)); 
}); 

// then when changing value with JS 
var element = ... // select the element with javascript here 
element.value='CC'; 
changeHandler($(element)); // just call the function everytime the value gets changed