【问题标题】:Do nothing on empty input - combinate with dynamic action on form对空输入不执行任何操作 - 结合表单上的动态操作
【发布时间】:2015-07-08 10:18:56
【问题描述】:

我想要的是当您在input 中输入内容时,根据您单击的按钮,他将更改form 中的操作路径。我已经完成了一半(我认为)......看看我到目前为止所做的事情

function OnSubmitForm() {
      if(document.pressed == 'Log As')
      {
       document.myform.action ="log-as.html";
      }
      else
      if(document.pressed == 'Log As Int')
      {
        document.myform.action ="log-as-int.html";
      }
      return true;
    };
<form name="account" onsubmit="return onsubmitform();">
  <input type="text" name="user" id="user">
  <input type="submit" name="account" onclick="document.pressed=this.value" value="Log As" />
  <input type="submit" name="account" onclick="document.pressed=this.value" value="Log As Int" />
</form>

也许我找到了解决方案,但我不知道如何将这两者结合起来......

$('#search-form').submit(function(e) {
   if (!$('#user').val()) {
       e.preventDefault();
   }       
});

【问题讨论】:

    标签: javascript jquery forms input


    【解决方案1】:

    这可以使用 JQuery 轻松完成,如下所示:

    $("input[type='submit']").click(function(){
        var name = $(this).val();
        if(name=="Log As"){
            $("#myform").attr('action', 'log-as.html');
        }
        if(name=="Log As Int"){
            $("#myform").attr('action', 'log-as-int.html');
        }
    });
    

    JSFiddle demo here

    我还想指出,您提交的是 HTML 页面,而不是 PHP 页面。因此,在稍后尝试检索值时请记住这一点。

    【讨论】:

    • 这只是示例(关于 HTML 提交),因为项目仍在进行中,稍后会更改;)
    • 好吧,:) 请让我知道该解决方案是否适合您。
    • 抱歉我的重播迟了。不好我的朋友,还是我错了?从这里我得到了第二个 JS 代码 Fiddle example 。因此,当输入为空时,单击按钮时不会发生任何事情
    • 是的,如果搜索框为空,您提供的 JSFiddle 中的代码 e.preventDefault(); 会阻止提交表单。
    【解决方案2】:

    您可以使用以下代码做同样的事情:

    首先你的表单的name 属性和input type submit 是 相同的。它们必须是唯一的。

    <form name="account" id="account" action="">
      <input type="text" name="user" id="user">
      <input type="submit" name="account_submit1" onclick="document.pressed=this.value" value="Log As" />
      <input type="submit" name="account_submit2" onclick="document.pressed=this.value" value="Log As Int" />
    </form>
    

       $(document).ready(function () {
            $("#account").submit(function(e){
                alert($.trim($("#account [type='submit']:focus").val()))
                if($.trim($("#account [type='submit']:focus").val()) == "Log As"){
                    $("#account").attr('action',"log-as.html");
                    }else{
                    $("#account").attr('action',"log-as-int.html");
                }
            });
        }); 
    

    根据讨论更新代码:

     $(document).ready(function () {
            $("#account").submit(function(e){
                 if (!$('#user').val()) {
                   e.preventDefault();
                 }  
                if($.trim($("#account [type='submit']:focus").val()) == "Log As"){
                    $("#account").attr('action',"log-as.html");
                    }else{
                    $("#account").attr('action',"log-as-int.html");
                }
            });
        });
    

    【讨论】:

    • 抱歉我的重播迟了。不好我的朋友,还是我错了?从这里我得到了第二个 JS 代码 Fiddle example 。因此,当输入为空时,单击按钮时不会发生任何事情
    • @Soullighter 这是验证部分,你也可以在上面的代码中使用它
    猜你喜欢
    • 1970-01-01
    • 2021-11-02
    • 2020-07-11
    • 1970-01-01
    • 2016-03-24
    • 2015-05-30
    • 2014-10-30
    • 2015-06-08
    • 1970-01-01
    相关资源
    最近更新 更多