2017-02-22 4 views
-1

Так в HTML теле есть какПочему HTML поле ввода не проверяются до пост

<script type="text/javascript"> 
function validateMelco(form) { 
    toReturn=true; 
    if (form.melco.value.length==0) { 
    alert("Please enter your Melco serial no"); 
    toReturn=false; 
    } 
    return toReturn; 
} 
</script> 

и

<tr> 
<td valign="top"><b>SongKong for Melco (Melco discount)</b> 
</td> 
<td valign="top">£40 ($50 USD) 
</td> 
<td valign="top"> 
<form name="paypalpro" action="https://www.paypal.com/cgi-bin/webscr" onsubmit="return validateMelco()" method="post"> 
<input type="hidden" name="cmd" value="_s-xclick"> 
<input type="hidden" name="hosted_button_id" value="5UC5NAYZ6JZR8"> 
<input alt="PayPal" type="image" src="https://www.paypal.com/en_US/i/btn/btn_xpressCheckout.gif" border="0" name="submit"> 
<img alt="" border="0" src="https://www.paypalobjects.com/en_GB/i/scr/pixel.gif" width="1" height="1"> 
Melco Serial No:<input type="textfield" name="melco"/> 
</form> 
</td> 
</tr> 

Тем не менее, пользователь может нажать на кнопку, не вводя ничего на вход поле, предупреждение не отображается и форма отправлена. Почему не проверяется проверка JavaScript?

+0

Зачем проверять длину значения, если вы можете просто проверить, пустое ли это значение? Похоже на ненужную часть. – Slime

+0

@AmericanSlime реальная проверка еще не была выполнена, но проблема была в том, почему валидация (независимо от того, что она есть) не вызывалась. –

ответ

1

Измените строку

<form name="paypalpro" action="https://www.paypal.com/cgi-bin/webscr" onsubmit="return validateMelco()" method="post"> 

в

<form name="paypalpro" action="https://www.paypal.com/cgi-bin/webscr" onsubmit="return validateMelco(this)" method="post"> 
+0

ah, thankyou теперь работает –

1

Вы вызова функции без аргументов, но он ожидает, что аргумент, который определяет форму. Так что он ничего не может сделать.

1
<!DOCTYPE html> 
<html> 
<body> 

<p>When you submit the form, a function is triggered which alerts some text.</p> 

<tr> 
<td valign="top"><b>SongKong for Melco (Melco discount)</b> 
</td> 
<td valign="top">£40 ($50 USD) 
</td> 
<td valign="top"> 
<form name="paypalpro" action="https://www.paypal.com/cgi-bin/webscr" onsubmit="return validateMelco()" method="post"> 
<input type="hidden" name="cmd" value="_s-xclick"> 
<input type="hidden" name="hosted_button_id" value="5UC5NAYZ6JZR8"> 
<input alt="PayPal" type="image" src="https://www.paypal.com/en_US/i/btn/btn_xpressCheckout.gif" border="0" name="submit"> 
<img alt="" border="0" src="https://www.paypalobjects.com/en_GB/i/scr/pixel.gif" width="1" height="1"> 
Melco Serial No:<input type="textfield" name="melco"/> 
</form> 
</td> 
</tr> 

<script> 
function validateMelco(form) { 
    toReturn=true; 

    if (document.forms["paypalpro"]["melco"].value == "") { 
    alert("Please enter your Melco serial no"); 
    toReturn=false; 
    } 
    return toReturn; 
} 
</script> 

</body> 
</html> 

Объект формы не передан функции "validateMelco()" для доступа к элементам формы. Поэтому я использовал объект документа javascript для доступа к форме, используя 'document.forms ["paypalpro"] ["melco"]'.

+0

не собирается работать, если 'validateMelco' ожидает форму как параметр, а ваш' onsubmit' не предоставляет параметр формы –

+1

Я использую DOM, поэтому вам не нужен параметр. Код работает так, как должен. :) – Ayush

+0

Только демпинг-код не помогает. Объясните проблему, затем объясните решение. –

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

  • Нет связанных вопросов^_^