2015-02-18 4 views
0

У меня есть форма с 2 текстовыми полями. Я хочу проверить, что по крайней мере одно текстовое поле заполнено, и если есть только один заполненный, сделайте что-нибудь, и если они будут заполнены, сделайте что-нибудь еще. Я нашел функцию javascript, которая, я думаю, может помочь мне, но я не знаю, откуда ее назвать.Вызов функции javascript

здесь функция

function verification() { 
     var1= document.getElementById("form").value; 
     var2= document.getElementById("form").value; 
     if((var1 != "") && (var2 != "")) 
     { 
      // do what ever you want here. 
     } 
     else 
     { 
      alert("Fill at least one field"); 
     } 

} 

и форма:

<form id="form" action="start.php" method="post" enctype="multipart/form-data"> 
Person 1: <input type="text" name="person1" /> <br/> 
Person 2: <input type="text" name="person2" /> <br /> 
<input type="submit" value="Submit" name="Submit" /> 
</form> 
+0

<входной тип = "Отправить" значение = "Отправить" имя = "Отправить" OnClick =» проверка() "/> –

+0

, пожалуйста, избегайте встроенного javascript. –

ответ

2
function verification() { 
     var1 = document.getElementById("person1").value; 
     var2 = document.getElementById("person2").value; 

     if((var1 != "") || (var2 != "")) 
     { 
      // do what ever you want here. 
      return true; 
     } 
     else 
     { 
      alert("Fill at least one field"); 
      return false; 
     } 

} 

<form id="form" action="start.php" method="post" enctype="multipart/form-data" onsubmit="return verification();"> 
Person 1: <input type="text" id="person1" name="person1" /> <br/> 
Person 2: <input type="text" id="person2" name="person2" /> <br /> 
<input type="submit" value="Submit" name="Submit" /> 
</form> 

И вы должны поставить встроенный Javascript для js файла, поэтому ставлю эту функцию verification в какой-то js файл.

+0

JS по-прежнему не прав, «var1» и «var2» присваиваются одинаковое значение, и даже не правильное. – blex

+0

Отлично, теперь, чтобы проверить, что _ хотя бы одно текстовое поле заполнено_, замените '&&' на '||', и я продолжу :) – blex

+0

так что вместо «формы» я должен поставить «person1» и «person2»? – dres

2

Вызов идентификатора form не получит значения полей ввода person1 и person2. Таким образом, вам придется изменить свой var1 и var2 .Также, как вы хотите, чтобы проверить, если кто-нибудь из них заполнена, вы должны использовать || и не &&

HTML Изменен:

<form id="form" action="start.php" onsubmit="return verification()" method="post" enctype="multipart/form-data"> 
Person 1: <input id="one" type="text" name="person1" /> <br/> 
Person 2: <input id ="two" type="text" name="person2" /> <br /> 
<input type="submit" value="Submit" name="Submit"/> 
</form> 

Javascript модифицирована:

function verification() { 
     var1= document.getElementById("#one").value; 
     var2= document.getElementById("#two").value; 
     if((var1 != "") || (var2 != "")) 
     { 
      // do what ever you want here. 
      return true; 
     } 
     else 
     { 
      alert("Fill at least one field"); 
      return false; 
     } 

} 
+0

@Downvoter, не забудьте оставить комментарий? –

+0

Функции должны иметь '()', поэтому 'onclick =" проверка() "'. а также вы пропустили 'onclick =" подтверждение возврата() "'.Проверьте мой ответ, уже правильно ... – Legionar

+0

@Legionar oops typo, отредактировал его :) –

2

Попробуйте

HTML

<form id="form" action="start.php" method="post" onsubmit="return verification();" enctype="multipart/form-data"> 
Person 1: <input type="text" id="person1" name="person1" /> <br/> 
Person 2: <input type="text" id="person2" name="person2" /> <br /> 
<input type="submit" value="Submit" name="Submit" /> 
</form> 

Javascript

function verification() { 
     var1= document.getElementById("person1").value; 
     var2= document.getElementById("person2").value; 
     if((var1 == "") && (var2 == "")) 
     { 
      alert("Fill at least one field"); 

     } 
     else 
     { if((var1 != "") && (var2 != "")){ 
      alert("both filled"); 
     }else{ 
     alert("only one field filled"); 
     } 
     } 

    return false; 


} 

Здесь я returnig ложной (предотвращающая формы, чтобы отправить), вы можете поместить его под условием, если Accoding требований.

Corrected Fiddle

+0

' verify() 'всегда будет возвращать false, даже поля заполнены ... поэтому форма никогда не будет отправлена ​​... – Legionar

+0

@Legionar Я упомянул об этом в своем ответе, потому что вопрос dint указывает, когда отправить форму – silentprogrammer

1

ИЛИ использовать JQuery:

$("input[type='submit']").click(function() { 
 
    var var1 = $("input[name='person1']").val(); 
 
    var var2 = $("input[name='person2']").val(); 
 

 
    if (var1 != "" || var2 != "") { 
 
    alert("All OK :)"); 
 
    } else { 
 
    alert("Fill at least one field"); 
 
    $("form").submit(function(e) { 
 
     e.preventDefault(); 
 
     $("input[name='person1']").focus(); 
 
    }); 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.2.3/jquery.min.js"></script> 
 
<form id="form" method="post"> 
 
    Person 1: 
 
    <input type="text" name="person1" /> 
 
    <br/>Person 2: 
 
    <input type="text" name="person2" /> 
 
    <br /> 
 
    <input type="submit" value="Submit" name="Submit" /> 
 
</form>

EXAMPLE

Смежные вопросы