【问题标题】:Disable submit when inputs are empty [closed]输入为空时禁用提交[关闭]
【发布时间】:2016-07-20 00:50:34
【问题描述】:

http://pastebin.com/wGqMD59N

这是我的代码。我已经尝试过使用 jquert 发布的多种其他方法,但我一定没有正确编写它。我不确定如何将其应用于我的代码。但是在未填写输入时需要禁用第二个提交按钮。

【问题讨论】:

  • 如果可以的话,你能不能尝试不嵌套表单,因为这被认为是一种不好的做法
  • @Satya:你在哪里看到表单嵌套?

标签: php jquery html


【解决方案1】:

我将您的“第二个”按钮类型更改为 button 而不是 sumbit
我删除了属性disabled

您需要检查所有输入,结果将决定是否必须提交表单。

    <input type="hidden" name="submit" value="Submit">
    <input type="button" id="button" value="Submit">
  </form>
  <script>
  $("#button").click(function(){
    var flag=true;

    // check all input values
    $("input[type='text']").each(function(){
        if( $(this).val()=="" ){
            flag=false;
        }
    });

    // submit the form
    if(flag){
        $("form#input").submit()
    }else{
        // You should do something here.
        alert("Please fill all inputs!");
    }
  });
  </script>

如果flag 为假,你应该想想怎么办...
比如通知用户他必须填写所有输入。

注意:将 jQuery 库加载到您的 head 中以使其工作。

评论您的“命名”...
使用带有inputbutton 的名称、类或ID 可能会造成混淆。
尝试使用与方法或 HTML 标记不同的描述性词语。
;)

【讨论】:

  • pastebin.com/R5fYUS9t我试图添加你的代码,我做错了什么,因为它不起作用......
  • 我用一个你可以做什么的例子编辑了我的答案。 alert() 是一个触发警报框的 JavaScript 函数。有多种方法可以通知用户错误...取决于您想要做什么。 alert() 是最简单的...使用SweetAlert 可以实现更好的警报。
  • 在页面顶部,我正在检查数据是否已提交,如果已提交,则显示数据。但是现在按钮提交后没有显示数据。它也不会打印到 XML。但是,一旦我删除了您的代码,它就会再次起作用。不知道为什么会这样。
  • 对不起,我不太明白。您能否更详细地解释一下我打算把那条线放在哪里?
  • 对不起...我觉得我累了。检查我编辑的答案的第一行。只需添加它。
【解决方案2】:

使用 JQuery 函数

$('form').submit(function(e){
  var i=Number(0);
  $('input').each(function(){
    if($(this).val() == '')
      i++;
  });

 if(i>0)
  {
    e.preventDefault();
  }
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-02-08
    • 1970-01-01
    • 1970-01-01
    • 2023-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多