【问题标题】:If a checkbox is checked how to set a dropdown as a required field on "if... AND..." condition in jquery?如果选中一个复选框,如何在 jquery 中将下拉菜单设置为“if ... AND ...”条件的必填字段?
【发布时间】:2011-08-20 06:20:24
【问题描述】:

我需要解决这个问题:

勾选复选框(“Session1”)时,如果“复选框”被选中/“真”和“选择列表”,则应从下拉列表中填写“选择”列表(“课程”)为空,则应填写“选择列表”。反之亦然。

现在我的表单中有这个 jquery 代码:

$("#Session1").click(function () {
        {
    if($("#Session1").attr("checked")==true)
{
    alert("Course field is required");
}

}
    });

非常感谢您的帮助!

【问题讨论】:

  • 你有一个 {} 代表什么。你确定你复制的正确吗?
  • 看看这个:jsbeautifier.org - 这将使代码更容易调试。第二行和倒数第二行还有额外的大括号。
  • 谢谢!我的错:(我删除了那些额外的大括号。代码按照编写的方式工作,但我需要添加这个逻辑,例如 "if($("#Session1").attr("checked")==true) && ($("txtCaterer"==null){ alert("Course field is required"); } }); 这个逻辑的第二部分不起作用。

标签: jquery checkbox if-statement


【解决方案1】:
$('#session1').change(function(){
   $('#session1_list').toggle('show');
});

$('#submit').click(function(){
    if($('#session1').is(':checked'))
    {
        if($('#session1_list').val().length < 1)
        {
            alert('Please select a course');
            return false;
        } 
    } 

    alert('form posted ok');
});

演示:http://jsfiddle.net/AlienWebguy/n4xZU/

要强制一个必需的复选框,只需检查它是否是必需的:

$('#session1').change(function(){
    if($(this).is(':required') && !$(this).is(':checked'))
    {
        alert('Session1 is required!');
        $(this).prop('checked',true);
        return false;
    }
});

演示:http://jsfiddle.net/AlienWebguy/n4xZU/2/

【讨论】:

  • 谢谢!你的代码很有意义。当检查复选框(“会话1”)时,我需要这些警报工作,并且“选择课程”列表为空白/空。或者是选择了“课程”并且未选中复选框(“会话 1”)/错误。在我点击“提交”按钮之前,这些警报应该会弹出。我放了这段代码,但我不确定在这种情况下我的错误在哪里:
  • $("#Session1").click(function () { if($('#Session1').is(':checked') && ($('#Course').val ().length
  • $("#Session1").click(function () 更改为$('#Session1, #Course').bind('change',function()
  • @AlienWebguy:我按照您的建议将代码更改为: $('#Session1, #Course').bind('change',function() { if($("#Session1") .is(":checked") && ($('#Course').val().length
  • 刚刚在jsfiddle.net/Greg2325/gBzxs 发布了它,感谢您的关注!
【解决方案2】:

这是你可以使用的东西,你只需要做一些工作,使下拉列表根据你想要的任何逻辑来填充。

$("#Session1").click(function ()
{
   if($(this).is(":checked"))
   {
      alert("Course field is required");
   }
});

【讨论】:

  • 谢谢!当前视图中的代码有效,但我的问题是只有在选中复选框并且选择列表为空时才会弹出警报。你能建议如何使它工作吗?非常感谢!
  • 我同意@!Alien。为什么在他们选中此框时您会提醒“这是必需的”?
  • 只是一个评论:alert("Course field is required") 属于一个“course”字段,它是一个“select”字段。他们选中另一个框,然后“课程”字段为“必填”,如果未选中,则为“空”。
  • @CraigW:我正在使用您提供的代码,它可以工作,这正是我所需要的。只是缺少一部分逻辑,就好像一个字段被选中/选择而另一个没有,然后弹出警报。否则,这些字段是可选的。您能否建议如何使这些领域协同工作?我想从您的帖子中删除“(-1)”,我需要注册才能这样做吗?谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-11-03
  • 1970-01-01
  • 1970-01-01
  • 2022-06-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多