2013-05-05 54 views
0

我有一個HTML代碼:更新表單值,並停止其提交

<form action="?" id="form1" method="POST" onsubmit="return g.submitForm();"> 
    <input type="text" name="posX" id="formPosX" /> 
    <input type="text" name="posY" id="formPosY" /> 
    <input type="submit" value="Send" /> 
</form> 

和JS代碼:

var g = { 
    submitForm: function() { 
     var form = document.forms.form1; 
     if (form.posX.value > 100) 
     { 
      form.posX.value = 100; 
     } 
     return false; 
    } 
} 

和更新值之後,這種形式總是發送。我的目標是更新錯誤的值並停止提交表單(我想通過AJAX來完成)。當我刪除I​​F語句,然後代碼工作正常,但我需要更新一些值(並顯示錯誤,如果是)。

希望你能夠理解我很不好英語:)

回答

0

你假設的形式輸入的值是一個整數,而實際上它會作爲一個字符串數據類型進行處理。嘗試在應用比較之前將值轉換爲數字。

if (parseInt(form.posX.value) > 100) 
    { 
     form.posX.value = "100"; 
    } 

我已經適應你的代碼見下文(您將需要包括jQuery庫):

JS小提琴 http://jsfiddle.net/boggey79/kN49d/

0

形式要求停止,因爲的onsubmit返回false。你需要回報真實。在按鍵事件

檢查輸入值:

<script> 
    function checkPosX(this) { 
     if (parseInt(this.value) > 100) { 
      this.value = "100"; 
     } 
    } 
</script> 

<form action="?" id="form1" method="POST"> 
    <input type="text" name="posX" id="formPosX" onkeypress="checkPosX(this)" /> 
    <input type="text" name="posY" id="formPosY" /> 
    <input type="submit" value="Send" /> 
</form> 

然後正常工作。