我有一个带有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>
谢谢,
亚伦
答案 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')
。