使用JQuery获取当前文本框的ID

时间:2010-03-25 20:46:19

标签: javascript jquery textbox

我有一个带有2个文本框的表单,它们都做同样的事情。每次按键后,它们都会调用下面的JQuery函数。由于我有两个文本框都做同样的事情,我希望这个功能适用于两者。如何更改此功能,以便它将获取当前正在编辑的文本框的ID,而不仅仅是那个?

我要插入文本框ID的部分是'#DocId'

$(function() {
    $('#DocId').live('keydown', function() {    
        var styleValue = $(this).val();
        $('#tableContent').load(
            '/CurReport/TableResults',
            { style: styleValue }
        );
    })
});

这是我的HTML:

<td><%= Html.TextBox("DocId") %></td>
<td><%= Html.TextBox("LangCode") %></td>

谢谢,

亚伦

3 个答案:

答案 0 :(得分:1)

根据您的编辑,这将有效:

$('#DocId, #LangCode, #ThirdBoxIDHere').live('keyup', function() {    
  $('#tableContent').load('/CurReport/TableResults', { style: $(this).val() });
})

这假设它们都使用#tableContent,如果没有,那么它需要能够获取某个属性以确定它。

答案 1 :(得分:0)

这样的事情可能是:

<body>

<textarea class="commonClassName" name="DocId" id="DocId" rows="8" cols="40"></textarea>
<textarea class="commonClassName" name="DocId2" id="DocId2" rows="8" cols="40"></textarea>

<div id="tableContent" style="border: 2px solid #678;padding: 1em;">

</div>
<script type="text/javascript">
$(function() {
    $('.commonClassName').live('keyup', function() {    
        var styleValue = $(this).val();
        // do your own magic here
        $('#tableContent').html(styleValue);
    })
});

</script>
</body>

使用classname将live添加到这两个元素。
我使用keyup来避免单字符滞后。

答案 2 :(得分:0)

您可以按$(this).attr('id')获取ID,并将您的选择器更改为$('#DocId, #LangCode')