2012-03-22 9 views
0

申し訳ありませんが、私はフォームの検証を行っていますが、このJSではすべてが良好ですが、今は出力の問題に直面しており、選択したすべてのデータを表示しようとしています。だから私は、action属性を使用して、次の関数を呼び出し:関数が動作していません

function funcs() 
    { 
    var favor = document.reg.favor[selectedIndex].value; //Select input 
    var fname = document.reg.fname.value; // text input 
    var lname = document.reg.lname.value; // text input 
    var email = document.reg.email.value; // text input 
    var pass = document.password.value; //text input 
    for(i=0;i<document.reg.rad.length;i++) 
     { 
      if(document.reg.rad[i].checked == true) 
      { 
       var rad = document.reg.rad[i].value; // Radio input 
      } 
     } 
    if(document.reg.bike.checked == true) 
     { 
      var bike = document.reg.bike.value; //CheckBox input 
     } 
    if(document.reg.car.checked == true) 
     { 
      var car = document.reg.car.value; //CheckBox input 
     } 
    document.write('<head><link type="text/css" rel="stylesheet" href="registrationtable.css"/></head><body>'); 
    document.write("<div class = 'team'>"); 
    document.write('<table>'); 
    document.write("<tr><td> שם פרטי: </td><td>" + fname + "</td></tr> <tr><td> שם משפחה: " + lname + "</td></tr> <tr><td> אימייל: " + email + "</td></tr> <tr><td> סיסמא: " +pass +"</td></tr>"); 
    document.write("<tr><td> השחקן האהוב עליך הוא " + favor +"</td></tr>"); 
    document.write("</table>"); 
    document.write("</div></body>"); 
    } 

ここではフォームのヘッダーです:

<form name ="reg" action ="Javascript:funcs()" onsubmit ="return checkValidation()"> 

が、私はそれは、他のすべてのJavaScriptコードが完全に機能していることをクリアする必要がありたいと思いますこの機能を備えたものになろう。 送信ボタンを押しても何もしません。誰が問題を知っている? ありがとうございました。

+0

あなたは確かにcheckValidationがtrueを返していますか? – aquinas

+2

1つは、コードスニペットに 'checkValidation'関数がありません。は存在しない関数から値を返すことはできません... –

+0

Marc B 'checkValidation()'は「完璧に動作する他のすべてのJavaScriptコード」と仮定しています。また、 'funcs'はない。私は間違っている可能性がある。 –

答えて

2

私は疑いがありました。一つの問題は、この行です:

var favor = document.reg.favor[selectedIndex].value; 

それがあるべき

var favor = document.reg.favor[document.reg.favor.selectedIndex].value; 

そして、あなたの第二の問題は、この:

var pass = document.password.value; 

は次のようになります。

var pass = document.reg.password.value; 

更新フィドルを参照してください。 :http://jsfiddle.net/x7SBy/1/

最後に、Firefoxを使用してFirebugをダウンロードする必要があります。このようなJSの問題をデバッグすることは非常に貴重です。

編集:あなたのJSには詳しくは触れていないが、一般的にこのような問題のためにdocument.reg.passwordを使用したくないという問題があります。実際には、document.getElementByIdを使用する必要があります。 FYI。

+0

OHHHHHHよろしくお願いします!できます!!!!!!!!!!!! – idish

4

あなたは can't それはURIにする必要があり、あなたのaction属性にjavascript関数を持つべきではありません。妥当性検査が成功した場合は、funcsonsubmitに電話することができます。

Aquinasは実際にはaction属性でjavascript関数を呼び出すことが可能であることを示しているので、action属性にjsコードを入れないことをお勧めします。

+0

あなたは深刻ですか?私の先生は私に教えてくれた!! – idish

+0

"この属性はフォーム処理エージェントを指定します.HTTP URI以外の値に対するユーザーエージェントの動作は定義されていません。私はあなたにこれをするべきだと言っているわけではありません。実際には、あなたはすべきではないが、IE 9、クロム、およびFirefoxでは、その動作を関数が呼び出すことになります。別の動作を見た場合、どのブラウザを使用していますか? – aquinas

+0

Aquinas、これはどこで動作しますか? –

0

フォームを検証しようとしているようですが、有効な場合はfuncs関数を呼び出してページのHTMLを変更してください。

たぶん、このような何か:

<form name="reg" action="" onsubmit="checkValidation()"> 

そして、フォームの送信を一時停止し、有効な場合、funcs関数を呼び出すcheckValidation機能:

function checkValidation(e) { 
    e.preventDefault(); 

    if (checkValidation()) { 
     funcs(); 
    } 
} 

しかし、このような場合には、お使いのfuncs機能タグなどを<head>と書くべきではありません。たぶんあなたは、JavaScriptのDOMで新しいHTML文書を作成しようとするのではなく、本体にHTMLを追加するだけかもしれません。

代替ソリューション

function checkValidation() { 
    ... do your validation 

    return true; // or false if invalid 
} 

その後formのあなたのアクションタグで実際のHTMLページ/リソースを使用しています。

関連する問題