或 jquery 的运算符无法按我的预期工作..?

发布于 2024-11-08 13:07:36 字数 383 浏览 2 评论 0原文

$('input[TYPE="SUBMIT"]').click(function(){
    if ($('input[TYPE="TEXT"').val().length===0 || $('textarea').val().length===0)
    {
        console.log($('input[TYPE="TEXT"').val().length);
        console.log($('textarea').val().length);
        return false;
    }
});

chrome 突出显示了我的 if 语句。我真的不明白这里有什么问题。我想我可以向这两个字段添加一个类,但我的布局实际上并不需要它。我是否以某种方式写错了?

$('input[TYPE="SUBMIT"]').click(function(){
    if ($('input[TYPE="TEXT"').val().length===0 || $('textarea').val().length===0)
    {
        console.log($('input[TYPE="TEXT"').val().length);
        console.log($('textarea').val().length);
        return false;
    }
});

chrome highlights my if statement. I really don't see what's wrong here. I suppose I could add a class to both fields, but I don't really need that for my layout. Am I writing this incorrectly somehow?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

如果没有 2024-11-15 13:07:36

我立即注意到

$('input[TYPE="TEXT"')

应该是

$('input[TYPE="TEXT"]')

注意但是,进行这样的选择只会检查它找到的第一个文本框/文本区域的长度,而不是每个文本框/文本区域的长度。

在这种情况下,您需要的是这样的:

$("input[type='submit']").click(function()
{
    var ok = true;
    $("input[type='text'], textarea").each(function() {
        ok &= ok && $(this).val().length > 0;
    });
    alert(ok ? 'All OK' : 'Not OK :(');
});

更好的是为提交按钮提供适当的 ID,为输入元素提供一些其他属性,这样您就不会意外地在验证中包含其他控件。

<input type="text" validate="true" />

$("*[validate='true']").each(function() {
    ok &= ok && $(this).val().length > 0;
});

What I've immediately noticed is that

$('input[TYPE="TEXT"')

should be

$('input[TYPE="TEXT"]')

Note, however, that making a selection like this will only check the length of the first textbox/textarea it finds, not each of them.

What you'd need in that case would be something like this:

$("input[type='submit']").click(function()
{
    var ok = true;
    $("input[type='text'], textarea").each(function() {
        ok &= ok && $(this).val().length > 0;
    });
    alert(ok ? 'All OK' : 'Not OK :(');
});

Even better would be giving the submit button a proper ID and the input elements some other attribute, so you don't accidentally include other controls in the validation.

<input type="text" validate="true" />

$("*[validate='true']").each(function() {
    ok &= ok && $(this).val().length > 0;
});
滴情不沾 2024-11-15 13:07:36
($('input[TYPE=TEXT]').val().length == 0 || $('textarea').val().length == 0)
($('input[TYPE=TEXT]').val().length == 0 || $('textarea').val().length == 0)
木緿 2024-11-15 13:07:36

看起来您的 'input[TYPE="TEXT"' 在很多地方都缺少 ],这可能是问题所在吗?

It looks like you have 'input[TYPE="TEXT"' with a missing ] in quite a few places, could that be the problem?

瞎闹 2024-11-15 13:07:36

$('input[TYPE="TEXT"/*]*/')

你忘记了 ]

我建议你使用 :text 伪选择器;)

$("input:text");

:文本

$('input[TYPE="TEXT"/*]*/')

You forgot the ]

I recommend you use the :text pseudo selector instead ;)

$("input:text");

:text

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文