1

私はフォームを持っており、現在、ユーザーがすべての入力を入力していることを確認するためにフォームを検証するためのjavascriptコードを持っています。私のフォームアクションには次のものが含まれます。

onsubmit="return validateForm();"

これは、すべてのフィールドに入力されていることを確認するためのJavaScriptです。それが何か違いを生むなら、ここに私のjavascriptコードがあります:

<script type="text/javascript">// 
<![CDATA[function validateForm() { 
    var a=document.forms["myform"]["inf_field_FirstName"].value; 
    var b=document.forms["myform"]["inf_field_Email"].value; 
    var c=document.forms["myform"]["inf_field_Phone1"].value; 
    if (a==null || a=="" || a=="First Name Here")
    {   alert("Please enter your First Name!");   
    return false;   }     
    if (c==null || c==''|| c=="Enter Your Phone Here")
    {    alert("Please insert your phone number!");   
    return false;   }    
    var emailRegEx = /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i;    
    if (document.myform.inf_field_Email.value.search(emailRegEx) == -1)  
    {           alert("Please enter a valid email address.");               
    return false;    } }
    // ]]>
</script>

ただし、cで定義されている電話番号フィールドに、ユーザーが9桁以上の電話番号を入力しない場合にポップアップする別のスクリプトを追加したいと思います。このようなコードを追加することを考えていました

<script type="text/javascript">
function validate(){

var c=document.forms["myform"]
    if (input.length<9){
        alert("Please enter a real phone number")
        return false
    }else {
        return true
    }
}
</script>

ただし、送信時に両方の関数を実行する方法がわかりません。私はjavascriptに非常に慣れていないので、これに対する簡単な解決策がすでにある場合は失礼します。

ありがとう

4

2 に答える 2

1

onsubmit= の後の引用符で囲まれたものはすべて、単なる JavaScript です。次のようにして、両方の関数が true を返すようにすることができます。

onsubmit="return validateForm() && validate();"
于 2013-01-06T23:50:39.447 に答える
0

その条件の別のルールとして追加できます。例えば:

if (c==null || c==''|| c=="Enter Your Phone Here" || c.length < 9)   {    
  alert("Please insert your phone number!");   
  return false;
}

このコードをリファクタリングするのがおそらく最善ですが、これが必要なことを実行する最速の方法です。

于 2013-01-06T23:53:11.127 に答える