0

在单击使用 jQuery 和 javascript 的按钮后,我正在尝试验证表单的输入值。

现在,如果我为输入输入一个值并单击提交,输入字段和按钮就会消失。知道我在这里有什么问题吗?

HTML 文件...

<!DOCTYPE html>
<html>
    <head>
        <title></title>
        <link/>
        <script type='text/javascript' src='script.js'></script>
    </head>
    <body>
            <form>
                <input type="text" id='input_1'>
                <input type="submit" value="Send" id="send">
            </form>   
    </body>
</html>

脚本文件...

$(document).ready(function() {
    $('.send').click(function() {
        validateInput(document.getElementById('#input_1'));
        function validateInput(inputValue){
             if (inputValue === 3) {
             alert("Element cannot be equal to 3");
             }
        }
    });
});
4

3 回答 3

1
$(document).ready(function() {
    $('#send').live('click',function() { //Because send is the id of your button
        if(validateInput(document.getElementById('#input_1'))){
            alert("Element cannot be equal to 3");
            return false;
         }
         else{
             //Do something else
         }
        function validateInput(inputValue){
             if (inputValue == 3) {
             return false;//Will prevent further actions
             }
        }
    });
});
于 2013-05-06T15:10:49.033 回答
0
  1. $('.send').click(function() { 应该是$("#send").click(function() {。注意哈希符号而不是点 (.),如果选择器是类,则使用点,而如果选择器是 ID,则使用 #。

2.您应该将验证功能移到 $(document).ready(function()..希望有所帮助

于 2013-05-06T15:20:25.433 回答
0

谢谢大家的回复。不幸的是,我无法使用您的建议使其正常工作。我决定使用 jQuery 来获取元素并将消息附加到 div 而不是使用警报。这是一种不同的方法,但最终奏效了。

HTML...

<!DOCTYPE html>
<html>
    <head>
        <title></title>
        <link/>
        <script type="text/javascript" src="script.js"></script>
    </head>
    <body>
            <form>
                <input type="text" name="input"/>

            </form>
            <button id="send">Send</button>
            <div class="error">
            </div>
    </body>
</html>

脚本...

$(document).ready(function() {
    $('#send').click(function(){ 
    var toValidate = $('input[name=input]').val();
    if (toValidate == 3) {
    jQuery('.message').html('');
        $('.error').append('<div class="message">' + toValidate + " is    invalid" + '</div>');
    }
    else {
        jQuery('.message').html('');
        $('.error').append('<div class="message">' + toValidate + " is valid" + '</div>');
         }

    });
}); 
于 2013-05-06T19:25:54.800 回答