提交表格前清算价值(不取消提交)

时间:2012-02-22 15:07:52

标签: jquery

我希望在提交之前清除两个输入字段中的默认值。 但这不起作用......

<form action="page.html" id="myForm">
    <input type="text" value="Firstname" name="firstname" id="firstname">
    <input type="text" value="Lastname" name="lastname" id="lastname">
    <input type="submit">
</form>

<script>
    $(document).ready(function() {
        $("myForm").submit(function() {
            if($('#firstname').val() == "Firstname")
                $('#firstname').val() = "";

            if($('#lastname').val() == "Lastname")
                $('#lastname').val() = "";

            return true;    
        });
    });
</script>

我不想在焦点上清除它们。 我不能使用html5。

3 个答案:

答案 0 :(得分:2)

值是一个函数,您可以像这样使用它。 请尝试改为:

$('#firstname').val('');
....

答案 1 :(得分:1)

您的代码不正确。您必须在ID之前使用#符号。所以这就是它

$(function() {  
    $("#myForm").submit(function(e) {       
    e.preventDefault();
        if($('#firstname').val() == "Firstname")
            $('#firstname').val("");

        if($('#lastname').val() == "Lastname")
            $('#lastname').val("");                       
    });
});

e.preventDefault();行会停止事件传播,让您看到效果。你可以删除它。

答案 2 :(得分:0)

使用空字符串val

调用.val("");函数
$(document).ready(function() {
    $("myForm").submit(function() {
        if($('#firstname').val() == "Firstname")
            $('#firstname').val(""); // <====

        if($('#lastname').val() == "Lastname")
            $('#lastname').val(""); // <====

        return true;    
    });
});
带有空参数的

val()只返回元素的值 所以你的代码等于

if($('#lastname').val() == "Lastname")
    'Lastname' = ""; // Won't change the element value.