2012-02-22 119 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();將停止事件傳播,讓你看到效果。你可以刪除它。