2012-02-22 122 views
0

我想在提交表单之前在两个输入字段中清除我的默认值。 但是这不工作...提交表单之前清除值(不取消提交)

<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。

+0

所以你想在焦点的领域,而不是提交? – 2012-02-22 15:10:41

回答

2

VAL是一个函数,你不能这样使用它。 请改为:

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

还有一个错字,前myForm的 – SachinGutte 2012-02-22 15:26:43

+0

改成了'code' 工程! Cheers – 2012-02-22 15:28:20

+0

@soju - 是的,它已被添加为评论! – SachinGutte 2012-02-22 15:32:48

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. 
1

您的代码是错误的。您必须在ID前使用#符号。所以这里是

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

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

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