Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/476.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 多个JavasScript以相同的形式提交_Javascript_Html - Fatal编程技术网

Javascript 多个JavasScript以相同的形式提交

Javascript 多个JavasScript以相同的形式提交,javascript,html,Javascript,Html,当我点击submit1然后点击submit2时,一切都很顺利,但是当我在第一次输入文本时按Enter键时,我进入第二部分 当我在第二个输入文本上按Enter键时->第一个JavaScript函数执行,这给我带来了麻烦 我不想禁用Enter键press,但他执行良好的提交输入 有没有办法在他被执行后停用submit1 或者知道按下了哪个输入文本回车键 HTML: CSS: #3,4 { 显示:无; } JavaScript: $(文档).ready(函数(){ $(“#submit1”)。单

当我点击
submit1
然后点击
submit2
时,一切都很顺利,但是当我在第一次输入文本时按
Enter键时,我进入第二部分

当我在第二个输入文本上按Enter键时->第一个JavaScript函数执行,这给我带来了麻烦

我不想禁用
Enter键
press,但他执行良好的提交输入

有没有办法在他被执行后停用
submit1

或者知道按下了哪个输入文本回车键

HTML:


CSS:

#3,4
{
显示:无;
}
JavaScript:

$(文档).ready(函数(){
$(“#submit1”)。单击(函数(){
/*使用javascript验证数据并使用Ajax发送数据*/
/*如果一切正常,则显示:*/
document.querySelector(“#2”).style.display=“无”;
document.querySelector(“#3”).style.display=“block”;
document.querySelector(“#4”).style.display=“block”;
});
$(“#submit2”)。单击(函数(){
/*使用javascript验证数据并使用Ajax发送数据*/
});
});

如果在
submit1
上按ENTER键,则除非按TAB键,否则不会选择
submit2
。你在这么做吗

无论如何,您可以这样做:

$("#submit1").click(function () { 

      /* Verify data with javascript and send it with Ajax */
      /* if everything is ok display: */

      $("#submit2").focus(); // This will automatically focus the user on the second submit button //
});
这将强制用户在下次点击ENTER时提交
submit2
按钮

但是不要使用
.submit()
。。。您应该使用
.submit()
函数而不是
.click()
,因为我相信
.click()
只检查鼠标点击

$("#submit1").submit(function(){ 
      /* Blah blah blah... */

      $("#submit2").focus(); // This will automatically focus the user on the second submit button //
});

$("#submit2").submit(function(){ 
     /* ... */
});

正如其他用户所说,是
submit1
submit2
在同一个
标签中:

是的,它们是。但是如果要单独提交数据,则不应该在同一个
标记中有两个字段

这样做:

HTML

<form>
    <div id="1">
        <input type="text" placeholder="name"/>
    </div>
    <div id="2">
        <input type="submit" value="submit" id="submit1"/>
    </div>
</form>
<form>
    <div id="3">
        <input type="text" placeholder="firstname"/>
    </div>
    <div id="4">
        <input type="submit" value="submit" id="submit2"/>
    </div>
</form>


如果在
submit1
上按ENTER键,则除非按TAB键,否则不会选择
submit2
。你在这么做吗

无论如何,您可以这样做:

$("#submit1").click(function () { 

      /* Verify data with javascript and send it with Ajax */
      /* if everything is ok display: */

      $("#submit2").focus(); // This will automatically focus the user on the second submit button //
});
这将强制用户在下次点击ENTER时提交
submit2
按钮

但是不要使用
.submit()
。。。您应该使用
.submit()
函数而不是
.click()
,因为我相信
.click()
只检查鼠标点击

$("#submit1").submit(function(){ 
      /* Blah blah blah... */

      $("#submit2").focus(); // This will automatically focus the user on the second submit button //
});

$("#submit2").submit(function(){ 
     /* ... */
});

正如其他用户所说,是
submit1
submit2
在同一个
标签中:

是的,它们是。但是如果要单独提交数据,则不应该在同一个
标记中有两个字段

这样做:

HTML

<form>
    <div id="1">
        <input type="text" placeholder="name"/>
    </div>
    <div id="2">
        <input type="submit" value="submit" id="submit1"/>
    </div>
</form>
<form>
    <div id="3">
        <input type="text" placeholder="firstname"/>
    </div>
    <div id="4">
        <input type="submit" value="submit" id="submit2"/>
    </div>
</form>


从这里我可以告诉您最大的问题是,在一个表单标签中似乎有两个提交按钮。我强烈建议不要这样做,因为这可能会导致像您所经历的那样的问题。相反,我将更改为按钮,并将提交功能添加到JavaScript方法中,就像您现在所做的那样


显然,尽管您希望将文本框链接到一个按钮,但我想看看这个问题,因为我可以告诉您,这里最大的问题是,在一个表单标记中似乎有两个提交按钮。我强烈建议不要这样做,因为这可能会导致像您所经历的那样的问题。相反,我将更改为按钮,并将提交功能添加到JavaScript方法中,就像您现在所做的那样


显然,尽管您希望将文本框链接到一个按钮,但我会看一看这个问题,除非我误解了这个问题-您只是试图确保根据用户选择的按钮调用正确的事件处理程序。只要按钮具有它们所具有的唯一ID,并且您可以将它们与正确的事件处理程序相关联(这看起来就像您在共享代码中所做的那样),这就可以正常工作

此外,您还可以使用disabled属性禁用任何按钮(将其设置为true)

禁用 document.getElementById(“submit1”).disabled=true

要启用:
document.getElementById(“submit1”).disabled=false

除非我误解了这个问题-您只是试图确保根据用户选择的按钮调用正确的事件处理程序。只要按钮具有它们所具有的唯一ID,并且您可以将它们与正确的事件处理程序相关联(这看起来就像您在共享代码中所做的那样),这就可以正常工作

此外,您还可以使用disabled属性禁用任何按钮(将其设置为true)

禁用 document.getElementById(“submit1”).disabled=true

要启用:
document.getElementById(“submit1”).disabled=false

是一个特殊控件。如果窗体具有焦点并且按下了enter按钮,则会导致窗体提交。使用此选项时,应使用
event.preventDefault()
在绑定到click事件时取消该行为。我建议改用

是一个特殊控件。如果窗体具有焦点并且按下了enter按钮,则会导致窗体提交。使用此选项时,应使用
event.preventDefault()
在绑定到click事件时取消该行为。我建议改用

我让它这样工作:
为什么我在一张表格上会有问题?IE<6

HTML:

JAVASCRIPT:

$(document).ready(function() {

  $('#text2').keypress(function(e){
      if(e.keyCode==13)
      $('#submit2').click();
    });

  $("#submit1").click(function () { 

      /* Verify data with javascript and send it with Ajax */
      /* if everything is ok display: */

      document.querySelector("#2").style.display = "none";
      document.querySelector("#3").style.display = "block";
      document.querySelector("#4").style.display = "block";
      document.querySelector("#submit1").disabled = true;
  });

  $("#submit2").click(function () { 

       /* Verify data with javascript and send it with Ajax */
  });

});

我让它这样工作:
为什么我在一张表格上会有问题?IE<6

HTML:

JAVASCRIPT:

$(document).ready(function() {

  $('#text2').keypress(function(e){
      if(e.keyCode==13)
      $('#submit2').click();
    });

  $("#submit1").click(function () { 

      /* Verify data with javascript and send it with Ajax */
      /* if everything is ok display: */

      document.querySelector("#2").style.display = "none";
      document.querySelector("#3").style.display = "block";
      document.querySelector("#4").style.display = "block";
      document.querySelector("#submit1").disabled = true;
  });

  $("#submit2").click(function () { 

       /* Verify data with javascript and send it with Ajax */
  });

});

根据您的共享代码,第二次提交的事件处理程序将被注释掉!在
submit1
处理程序上创建一个标志,表明您已经去过那里。然后,当你再次点击它时,只需返回。我是javascript新手,cou