2015-11-07 64 views
3

我有這樣的功能:通目前的案文作爲參數傳遞給jQuery函數

function getlst() { 
     $.ajax({ 
      type: "GET", 
      url: "/api/Configuration/GetListParameter", 
      success: function (data) { 
       EmptyGridStep1(); 
       for (var i = 0; i < data.length; i++) { 
        $('#tableBody').append('<tr><td><label id="id" name="id" >' + data[i].id + ' </td>' 
        + '<td>' + data[i].key + '</td>' 
        + '<td><input type="text" onchange="keydown();" value="' + data[i].value + '" /></td></tr>'); 
       } 
       initGrid(); 
      } 
     }); 
    } 

該keydown功能

function keydown(value) 
{ 
    alert(value); 
} 

我想改變:

<td><input type="text" onchange="keydown();" value="' + data[i].value + '" /></td> 

要將當前文本作爲參數傳遞給​​函數。

如何修改我的代碼以完成此任務?

+0

你不能。你可以做的是調用一個不同的函數,它從html元素中檢索值,然後用這個參數調用keydown。 – Danmoreng

+0

_要將當前文本作爲參數傳遞給keydown函數_,當前文本是什麼?你的意思是輸入值? –

回答

4

您不必這樣做。所有你需要做的就是通過input本身作爲參數傳遞給你的keydown功能

<td><input type="text" onchange="keydown(this);" value="' + data[i].value + '" /></td> 

,只是讀到這裏它的值

function keydown(input) 
    { 
     alert(input.value); 
    } 

不是最優雅的方式來做到這一點,我建議,而不是使用onchange,您使用jquerychange活動,讓你有一個單一的監聽器爲您更改事件

$('#tableBody').on("change", "input", function() { 
    console.log(this.value); 
}); 

您應該閱讀this