2014-02-14 97 views
0

嗨我有一個提交按鈕的基本字段形式,它會自動清除文本onfocus與只允許數字。我正在尋找它禁用提交,除非輸入字段中存在數字,我希望它阻止提交沒有輸入字段中的文本。問題是按鈕是一個實時鏈接。謝謝。防止在輸入字段中提交沒有文字

小提琴:http://jsfiddle.net/u3RZV/

$(document).ready(function() { 
     $("#quantity").keypress(function (e) { 
      if (e.which != 8 && e.which != 0 && (e.which < 48 || e.which > 57)) { 
       $("#errmsg").html("Enter Valid Zip!").show().fadeOut("5000"); 
       return false; 
      } 
     }); 
    }); 

#errmsg { 
    font:12px normal Futura, sans-serif; 
    background:yellow; 
    color:#444444; 
} 
.box { 
    width: 85px; 
    margin-bottom:10px; 
} 
.boxtwo { 
    width: 160px; 
} 
input { 
    width: 100%; 
    background: #FFFFFF; 
    border-radius: 4px; 
    border: 2px solid #acd50b; 
    padding: 10px 15px; 
    text-align: center; 
    -webkit-appearance: none; 
    color: #999999; 
    font-size: 11px; 
} 
input[type="focus"] { 
    outline: none; 
} 
input[type="submit"] { 
    border-radius: 4px; 
    border: 2px solid #2d8b1b; 
    -webkit-appearance: none; 
    background: #acd50b; 
    padding: 6px 10px; 
    color: #444444; 
    width: 100%; 
    font-size: 18px; 
    cursor:pointer; 
} 
<form action=""> 
    <div class="box"> 
     <input type="text" id="quantity" value="Enter Your Zip" /><span id="errmsg"></span> 

    </div> 
    <div class="boxtwo"> <a href="buttons.html"> 
      <input type="submit" id="signup" value="Compare"/> 
      </a> 

    </div> 
</form> 

回答

0
$("form").on("submit", function(e) { 
    if (!is_valid_zip($("#quantity").val())) { 
     e.preventDefault(); 
    } 
}); 

編寫is_valid_zip()函數是由您決定。您可能還希望通過alert()或類似方法向用戶顯示錯誤消息。

+0

'if(e.preventDefault) e.preventDefault(); else e.returnValue = false;' – user13500

+0

不需要 - jQuery的事件模型會將這種差異抽象出來。 – greenie2600