2012-02-22 7 views
0

2つの入力フィールドでデフォルト値をクリアしてから送信します。 しかし、これは動作しません...フォームを送信する前の値をクリアする(サブミットをキャンセルしない)

<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

あなたは提出するのではなく、フィールドの焦点にしたいですか? –

答えて

2

に等しいvalが、あなたがこのようにそれを使用することはできません、関数です。 代わりにお試しください:

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

1つのより多くのタイプミスがあるmyForm – SachinGutte

+0

は 'code' Works! 乾杯。 –

+0

@soju - はい、コメントに追加されました。 – SachinGutte

0

だけの要素の値を返し、空の文字列と空のパラメータを持つ.val("");

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

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

     return true;  
    }); 
}); 

val()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();は、効果を見るためにイベントの伝播を停止します。削除することができます。

関連する問題