我有一个同名但不同的ID的表单。我能够序列化阵列,但无法获得当前的ID。
<form action="test.php" id="loginform" name="loginform" method="post">
<input name="title[]" id="title1" type="text" value="" tabindex="1" />
<input name="title[]" id="title2" type="text" value="" tabindex="2" />
<input name="title[]" id="title3" type="text" value="" tabindex="3" />
<input type="submit" name="submit" value="Submit" id="submit" tabindex="4" />
</form>
$('#loginform').bind('submit', function() {
var elements = $(this).serializeArray();
$.each(elements, function(i, element) {
var temp = $('#' + element['name']);
var name = this.name; alert(name);
var id = $(this).attr("id");alert(id);
(temp.val() == '') ? temp.css({'background': '#FFC4C4', 'border': '1px solid #F00'}) : temp.removeClass('hightlight');
});
return false;
});
我得到的名字,但不是id。任何人都可以看到这个....
答案 0 :(得分:2)
我想我理解你的问题,但我不是百分之百确定。如果我的理解是正确的,那么您正在尝试迭代输入并获取每个输入的ID属性。
如果这就是你需要做的全部,那么有一种更简单的方法可以实现它。
$('#loginform').submit(function(ev) {
$('input[type=text]', this).each(function(index, element) {
alert($(element).attr('id'));
});
ev.preventDefault();
});
所以,快速细分:
$('input[type=text]', this)
从我们提交的表单中获取所有文字输入。.each()
迭代它们。element
,我们使用.attr()
获取ID,并将其传递给alert()
以显示给用户。答案 1 :(得分:0)