2017-04-05 60 views
2

Basicly我有这样的功能:使得提交按钮执行的功能

function testLength(){ 
    var input1 = document.getElementById("input1").value 
    var input2 = document.getElementById("input2").value 

    alert("test") 
    if (input1.length < 2 && input2.lenght < 2){ 
     alert("Please enter more then one symbol"); 
     return false 
    } 
} 

和intputs:

<input type="text" name="input1" id="input1"> 
<input type="text" name="input2" id="input1"> 
<input type="submit" onclick="testLength();" value="press me"> 

的想法是,如果输入为1个字符长,不允许提交不过虽然即使我的输入是1个字符长,它似乎并没有进入if语句(我认为)应该停止提交按钮。任何想法为什么?

回答

0

你应该看的东西像<form onsubmit="return testLength()">

如果函数返回false,则不会提交该函数。

+0

好吧,所以我设法停止提交按钮做它的事情。我仍然无法使if语句顺利通过,出于某种原因,无论我输入什么内容,它都会返回false(条件):S – Konulv

+0

您使用的是什么代码?在你的问题的代码中有一个错字:长度而不是长度 – kecalace

+0

\ * facepalm *所以它只是归结于我不能正确拼写。现在它工作得很好。谢谢<3 – Konulv

0

使用onsubmit事件:

<form onsubmit="return testLength();"> 
    <input type="text" name="input1"> 
    <input type="text" name="input2"> 
    <input type="submit" value="press me"> 
</form> 

欲了解更多信息,请阅读:How to prevent form from being submitted?

0

假设您的输入和提交按钮位于<form>元素内,表单的默认行为(即实际提交)将会发生什么。您可能想要为表单的submit事件添加一个事件侦听器,并在其中进行验证。

HTML

<form id="my-form"> 
    <input type="text" name="input1"> 
    <input type="text" name="input2"> 
    <input type="submit" value="press me"> 
</form> 

的Javascript

var form = document.getElementById('my-form'); 
form.onsubmit = function() { 
    var input1 = document.getElementById("input1").value 
    var input2 = document.getElementById("input2").value 

    alert("test") 
    if (input1.length < 2 && input2.lenght < 2){ 
     alert("Please enter more then one symbol"); 
     return false 
    } 
} 
0

除此之外的onsubmit,您还可以使用事件监听。

如:

document.querySelector('').addEventListener('click', testLength); 

HTML

<form id="my-form"> 
    <input type="text" name="input1"> 
    <input type="text" name="input2"> 
    <input type="submit" id="submit" value="press me"> 
</form> 

JAVASCRIPT

document.getElementById('submit').addEventListener('click', testLength); 
    function testLength(){ 
    var input1 = document.getElementById("input1").value 
    var input2 = document.getElementById("input2").value 

    alert("test") 
    if (input1.length < 2 && input2.lenght < 2){ 
     alert("Please enter more then one symbol"); 
     return false 
    } 
} 

事件监听器不仅可以querySelector和的getElementById,但任何目标来使用您定义见文档上的here