2017-02-22 13 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、ありがとうございました –

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

ちょうどコードをダンプすることは役に立たない。問題を説明し、解決策を説明してください。 –

関連する問題