2013-12-13 81 views
0

我有一個網站,用戶可以在網站上了解網頁或遊戲設計,並且索引中有一個表單詢問他們更願意學習哪些內容。我工作的腳本的唯一部分是提醒他們,如果他們將表單留空並提交,他們不會選擇。下面的代碼:如果用戶在表單中輸入特定文本,請將其提交到提交的特定頁面

JS:

function validateForm() { 
var x=document.forms["form1"]["lesson"].value; 
if (x === "web design") { 
location.href="web.html"; 
} else if(x === "game design") { 
    location.href="game.html"; 
} else { 
    alert("You didn't choose. You will remain on the home page."); 
} 
} 

HTML:

<form name="form1" onsubmit="return validateForm()" method="post"> 
      Would you rather learn web design <i>or</i> game design?:  <input type="text" name="lesson"> 
      <input type="submit" value="Submit"> 
     </form> 
+1

那麼這裏有什麼問題。不確定你的問題。你能否詳細說明一下。 –

+0

而不是var x = document.forms [「form1」] [「lesson」] .value;你可以嘗試document.getElementsByName(「lesson」)。值 –

+0

如果我使用那將如何獲取他們輸入的信息? (javascript to new) – user2834794

回答

0

[如果我理解您的問題正確:]您應該參考form[0]並設置<form>action屬性,而不是更改位置。如果沒有,爲什麼還要使用表格呢?我會做,而不是下面恕我直言更靈活的方法:

function validateForm() { 
    var val=document.forms[0]['lesson'].value; 
    switch (val) { 
     case 'web design' : 
      document.forms[0].action="web.html"; 
      break; 
     case 'game design' : 
      document.forms[0].action="game.html"; 
      break; 
     default : 
      alert("You didn't choose. You will remain on the home page."); 
      return false; 
      break; 
    } 
} 

並更改標記來

<input type="submit" value="Submit" onclick="validateForm();"> 
+0

'onsubmit'是驗證的好方法。 –

+0

這工作完美,非常感謝 – user2834794

+0

@LightnessRacesinOrbit,猜你的意思是在形式?是的,但點擊提交按鈕也可以。好點子。 – davidkonrad

0

我寧願建議你移動到jQuery的。它易於使用並減少了代碼打字疲勞。所以,如果你使用jQuery,你的表格看起來像:

<form id="form1" method="post"> 
      Would you rather learn web design <i>or</i> game design?:  <input type="text" id="lesson"> 
      <input type="submit" value="Submit"> 
     </form> 

和你的jQuery會是這樣:

$(function() 
{ 
    $('#form1').on('submit',function() 
{ 
    if($('#lesson').trim().val()=="web design") 
    location.href="web.html"; 
    if($('#lesson').trim().val()=="game design") 
    location.href="game .html"; 
    else 
    { 
    alert("You didn't choose. You will remain on the home page."); 
    return false; 
    } 
}); 
}); 

,不要忘了,包括在頭部的jQuery腳本文件你的html文件。去here下載鏈接。

+0

謝謝,但它仍然不會在用戶輸入文本時重定向用戶。 – user2834794

+0

你添加了jquery文件嗎? – Sayed

0

嘗試這樣

<form name="form1" onsubmit="return validateForm()" method="post"> 
     Would you rather learn web design <i>or</i> game design?:<input type="text" name="lesson" id="lesson"> 
     <input type="submit" value="Submit"> 
    </form> 

JS

function validateForm() { 
var x = document.getElementById('lesson').value; 
if (x === "web design") { 
    location.href = "web.html"; 
} 

else if (x === "game design") { 
    location.href = "game.html"; 
} 
else { 
    alert("You didn't choose. You will remain on the home page."); 
}} 
+0

不重定向 – user2834794

相關問題