2016-12-12 15 views
0

javascriptをHTMLコードにリンクしますが、ボタンを押すとアラート/ポップアップは表示されません。どのようにボタンが機能しないのか分かりません。私のコード内でどこが間違っていますか?ボタンが押されたときにこのHTMLフォームが実行されないのはなぜですか?

<form method="post" onSubmit="return formcontact();"> 

       <table align="center" cellpadding="5" width="500"> 
       <tr> 
       <td><b>Name:</b></td> 
       <td><input name="name" id="name" type="text" maxlength="50" placeholder="Full Name" style="width:350px; border:1px solid black;" class="ui-corner-all" ></td> 
       </tr><tr> 
       <td><b>Phone number:</b></td> 
       <td><input name="phonenumber" id="phonenumber" type="text" maxlength="23" placeholder="Phone Number" style="width:350px; border:1px solid black;" class="ui-corner-all" ></td> 
       </tr><tr> 
       <td><b>Email address:</b></td> 
       <td><input name="email" id="email" type="text" maxlength="50" placeholder="Email Address" style="width:350px; border:1px solid black;" class="ui-corner-all" ></td> 
       </tr><tr> 
       <td><b>Comments and questions:</b></td> 
       <td><textarea name="comments" id="comments" rows="7" cols="35" style="width:350px; border:1px solid black;" class="ui-corner-all"></textarea></td> 
       </tr><tr> 
       </table> <br /> 


       <button type="button" class="contact1" onclick="formcontact()">Submit</button> 
       <p id="submit"> </p> 
       </form> 

function formcontact(){ 
    var x = getElementById("name").value 
    var u = getElementById("phonenumber").value 
    var m = getElementById("email").value 
    var stay = getElementById("comments").value 
    var middle = m.indexOf("@"); 
    var end = m.lastIndexOf("."); 

    if (x == ""){ 
     alert("Please fill out name. It is required."); 
     return false 
    } 
    if (u == ""){ 
     alert("Please fill out phone number. It is required."); 
     return false 
    } 
    if (m == ""){ 
     alert("Please fill out email. It is required."); 
     return false 
    } 
    if (middle < 1 || middle < end +2 || end +2>=x.length) { 
     alert("Sorry, but this is not a valid e-mail address"); 
     return false; 
    } 
    if (stay == ""){ 
     alert("Please enter the comments or questions field.") 
    } 
    var enter = "Thank You. Your message has been submitted"; 
    document.getElementById("submit").innerHTML = enter; 
} 

https://jsfiddle.net/u0rbjvqL/

+0

jQueryをまったく使用している場合は、それを使用します(存在しませんが、jQueryにタグを付けました)。あなたのコードは60%+収縮します。また、送信ボタンに 'click'イベントを使用しないでください。キーボードフォームの送信はそれをバイパスします。 –

+1

JSFiddleに複数のエラーがあります。 "formcontactが定義されていません"。 JSFiddleは関数へのアクセスに問題がありますので、 'formcontact = function(){'(グローバルスコープにする)に変更してください。基本的にF12コンソールを使用してエラーを表示し、1つずつ並べ替えます:) –

答えて

0

いくつかの問題:

  • "formcontactが定義されていません"。 JSFiddleので基本的にはあなたのエラーを表示し、一つずつそれらを整理して、あなたのF12コンソールを使用し `

(そのグローバルスコープ作る)

  • それはdocument.getElementById()' not just getElementByIdを(だ)formcontact = function(){ようにそれを変更する機能へのアクセスに問題があります。 )

  • 関連する問題