Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 通过字段循环以使用jQuery进行验证_Javascript_Jquery_Html_Input - Fatal编程技术网

Javascript 通过字段循环以使用jQuery进行验证

Javascript 通过字段循环以使用jQuery进行验证,javascript,jquery,html,input,Javascript,Jquery,Html,Input,有没有办法用jQuery做到这一点 以下是设置: <input type='checkbox' class='sk1' /> <input type='text' class='skill1' /> <input type='checkbox' class='sk2' /> <input type='text' class='skill2' /> <input type='checkbox' class='sk3' /> &

有没有办法用
jQuery
做到这一点

以下是设置:

<input type='checkbox' class='sk1' />   <input type='text' class='skill1' />
<input type='checkbox' class='sk2' />   <input type='text' class='skill2' />
<input type='checkbox' class='sk3' />   <input type='text' class='skill3' />

<input type="button" onclick="validate();" />
(旁注:编写伪代码让我想知道是否有更好的命名约定可以使用,这样我就不必从中提取特定的数字。)

(另一个注意事项:如果未选中复选框,则文本字段将被禁用;我有此功能)


有人能给我一些指导吗?

只需循环复选框并选中
下一个
文本元素:

$(":checkbox:checked").each(function() {
    if (!$(this).next(":text").val().length) {
        alert("You must put in text!");
        return false; //bail out of the loop, return true to skip to the next iteration
    }
});

演示:

如果您发布相关的HTML代码,而不是伪(无用)代码,那么帮助您会更简单……对不起,我没有真正的代码可以提供给您,因为我不知道从哪里开始。所以我试着给你们一个逻辑顺序来说明我要做的事情。我在谈论HTML代码,检查它的结构,看看复选框和输入是否是直接的兄弟姐妹,对此我很抱歉;html是由php组合而成的,相当混乱。所以我试着简化它,这太简单了。我不熟悉
。next
命令,这就解释了为什么我让这个命令听起来如此困难。我喜欢简单:)我会在时间到期时标记你正确。。。我做了一个小小的改动,让它工作起来,
if($(this).next(“:text”).val(“”){
,它将把值设置为nothing!并且将始终通过
if
--
.length
是否有布尔检查,因为
0
是falsy@KickingLettuce--我还制作了一把小提琴来演示上述代码的工作原理:
$(":checkbox:checked").each(function() {
    if (!$(this).next(":text").val().length) {
        alert("You must put in text!");
        return false; //bail out of the loop, return true to skip to the next iteration
    }
});