2014-02-06 66 views
0

我有這樣的形式,其中例如A型,你可以只寫與1號開始,依此類推:JavaScript驗證工作,但形式不提交

<form accept-charset="UTF-8" action="verify.php" id="form" method="post"> 
<label id="type" for="type" class="">Type</label> 
<select class="" id="Type" name="type"> 
<option id="a" value="1">Type A</option> 
<option id="b" value="2">Type B</option> 
<option id="c" value="3">Type C</option> 
<option id="d" value="4">Type D</option> 
<option id="e" value="5">Type E</option> 
</select> 
<label for="type_number" class="inner_text">Type Number</label> 
<input name="type_number" type="text" class="false" id="type_number" /> 
<input type="button" id="Confirm" value="Confirm" /> 
</form> 

而且此Javascript:

document.getElementById('Confirm').onclick = function() { 

    var letter = document.getElementById("type_number").value.match(document.getElementById("Type").value); 
    if (letter !== null) { 
     letter = letter[0].toLowerCase(); 
     this.value = letter + this.value.substring(1); 
    } 
    else { 
    alert('Number is not correct!'); 
    } 
    } 

確認工作,但沒有提交,當一個好的答案被編寫時,'確認'被重命名爲'1確認',只有這樣纔會發生。

檢查的jsfiddle太:http://jsfiddle.net/focusoft/hSmFS/1/

感謝。

+1

那的工作'THIS.VALUE =信+ this.value.substring(1);'設置您的確認按鈕(即'this')爲'1onfirm' – Liam

回答

2

要麼提交表單中的JavaScript功能或者改變的確認鍵式提交。

改變你的JavaScript功能

document.getElementById('Confirm').onclick = function() { 

    var letter = document.getElementById("type_number").value.match(document.getElementById("Type").value); 
    if (letter !== null) { 
     letter = letter[0].toLowerCase(); 
     this.value = letter + this.value.substring(1); 
     document.forms[0].submit(); 
    } 
    else { 
    alert('Number is not correct!'); 
    } 
    } 
+0

如果他改變了提交按鈕,他不需要明確地調用提交。 – Liam

+0

謝謝,完美的工作。 – focusoft

+1

謝謝@Liam,我只是忘了添加'OR'。 –

1

更改此:

<input type="button" id="Confirm" value="Confirm" /> 

此:

<input type="submit" id="Confirm" value="Confirm" />