gpt4 book ai didi

javascript - 使用 JQuery 验证表单(无需专用库)

转载 作者:行者123 更新时间:2023-11-28 15:45:36 25 4
gpt4 key购买 nike

我有一个 HTML 表单,其中包含一个表格,该表格显示(除其他外)两列、一个复选框和一个输入文本字段。用户首先选中复选框,然后修改输入文本字段中的值。在提交此表单之前,我想验证用户输入。

我实现了这个验证功能:

<script type="text/javascript" charset="utf-8">
var error = false;
$('#form-id').submit(function (event) {
var pattern = /^[0-9]+$/;
alert(pattern); // 1st
var error = false;
$('#form-id input[type=checkbox]').each(function () {
var sThisVal = (this.checked ? $(this).val() : "");
if(sThisVal === 'on') {
var field = $(this).closest('td').siblings()
.find("input[type=text]")[0];

var value = field.value;
alert(value); // 2nd
var ok = pattern.test(value);
alert(ok); // 3rd
if( ! ok) {
error = true;
field.addClass('red-border');
} // if on ok
} // if checked
}); // foreach checkbox
return ! error;
});

在第三次警报出现之前一切正常。然后它在 addClass 上失败并显示以下消息:

TypeError: 'undefined' is not a function 
(evaluating 'field.addClass('red-border')')

所以字段是未定义,但当我读取它的值时一切正常。

我根本不是 Javascript 或 JQuery 方面的专家,但在阅读文档后我无法理解为什么会发生这种情况。

最佳答案

更改这些行

var field = $(this).closest('td')
.siblings()
.find("input[type=text]");//jQuery object
var value = field[0].value; // field[0] is a native HTML element

错误是您尝试将 addClass(jQuery 方法)添加到 native HTML 元素

请参阅此 fiddle 以获取解释:http://jsfiddle.net/codovations/tH5xc/

关于javascript - 使用 JQuery 验证表单(无需专用库),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22476133/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com