我的表格看起来像这样:
<form method="POST">
<input type="text" name="htdate" id="htdate">
<br/>
<input type="text" name="pgdate" name="pgdate">
<br/>
<input type="submit" name="submit" value="submit">
</form>
我希望在表单更改时获取文本框ID。我的js代码看起来像这样:
$('form :input').change(function()
{
var eleID = $(this).id;
console.log("changeID: ", eleID);
});
控制台输出:
changeID: undefined
在更改值时是否有任何方法可以获取元素的id。?
答案 0 :(得分:4)
id
是dom对象的属性,jQuery对象没有任何id
属性,因此它将始终返回undefined
使用 this.id
或 $(this).attr('id')
获取元素的ID
$('form :input').change(function() {
var eleID = this.id;
// var eleID = $(this).attr('id');
console.log("changeID: ", eleID);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<form method="POST">
<input type="text" name="htdate" id="htdate">
<br/>
<input type="text" name="pgdate" name="pgdate">
<br/>
<input type="submit" name="submit" value="submit">
</form>
keypress
,keyup
或input
事件
$('form :input').on('input', function() {
var eleID = this.id;
// var eleID = $(this).attr('id');
console.log("changeID: ", eleID);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<form method="POST">
<input type="text" name="htdate" id="htdate">
<br/>
<input type="text" name="pgdate" name="pgdate">
<br/>
<input type="submit" name="submit" value="submit">
</form>
答案 1 :(得分:1)
使用$()。attr();
$('form :input').change(function()
{
var eleID = $(this).attr("id");
console.log("changeID: ", eleID);
});
答案 2 :(得分:0)
有没有办法在值更改期间获取元素的ID。
为此,您可以使用input
中引入的html5
事件。所以这可以做到:
$('form :input').on('input', function()
{
var eleID = this.id; // <----this.id; || $(this).attr('id');
console.log("changeID: ", eleID);
});
只有在您从输入中失去焦点时才会调用 change
事件,因此如果您在typing/cut-copy-paste
期间寻找即时效果,那么input
对您有益。