2013-03-28 23 views
0

我如何去從提交禁用的形式如何禁用從提交表單?如果沒有更改或填寫,我還想顯示一條警報消息。這裏是我的代碼:JQuery的:如果默認的用戶名和密碼值不改變或留空時的默認值就不會改變

<script>  
$(document).ready(function(){ 

     $('input[type=text], input[type=password]').focus(function() { 

      if(this.value === this.defaultValue) 
      { 
       $(this).val(""); 
      } 
     }).blur(function(){ 
      if($(this).val().length == 0) 
      { 
       $(this).val(this.defaultValue); 
      } 
     }); 
    }) 
</script> 

<form id=""form1" action="process.php" method="post"> 
<input type="text" name="un" value="Username"/> 
<input type="password" name="pw" value="Password"/> 
<input type="submit" value="Submit"/> 
</form> 

請幫幫忙!提前致謝!

回答

0

退房實施jQuery Validate Plugin

這裏有一個working fiddle

<body> 

.... other content .... 

<form id="form1" action="process.php" method="post"> 
    <input type="text" name="un" placeholder="Username" /><br /> 
    <input type="password" name="pw" placeholder="Password" /><br /> 
    <button type="submit">Submit</button> 
</form> 
<script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.11.1/jquery.validate.js"></script> 
</body> 

    <script type="text/javascript"> 
    $('#form1').validate({ 
     errorElement: 'label', 
     rules: { 
      un: { 
       required: true, 
       minlength: 1 
      }, 
      pw: { 
       required: true 
      } 
     }, 
     messages: { 
      un: { 
       required: 'Please enter your name.' 
      }, 
      pw: { 
       required: 'Please enter your password.', 
      } 
     }, 
     submitHandler: function (form) { 
      form.submit(); 
     } 
    }); 
    </script> 
+0

它完美的作品在Chrome上,但不是在IE8上,我需要得到它的工作,因爲我們公司的電腦主要使用IE8 ... – netizen0911

+0

jQuery驗證插件(如果這就是你說的)在IE中工作正常 – adamdehaven

+0

正確。由於某些原因,它不適用於我的IE8。也許是因爲HTML5表單參數。它仍然使用默認值提交表單。 – netizen0911

0

變化的html:

<input type="submit" value="Submit" onclick="return validateForm();"/> 

功能驗證形式:

function validateForm(){ 
    var defaultValue ='blabla'; 
    var text = $('input[type=text]').val(); 
    var pass= $('input[type=password]').val(); 
    if(text.length==0||text===defaultValue||pass.length==0||pass===defaultValue){ 
     return false; 
     //alert if you want 
    } 
    else{ 
     return true; 
     } 
    } 
+0

隱而不宣似乎沒有工作... =( – netizen0911

0

它的工作..

<form id="form1" action="" method="post"> 
    <input type="text" name="un" default="Username" value="Username"/> 
    <input type="password" name="pw" default="Password" value="Password"/> 
    <input type="button" value="Submit" onclick="validateForm()"/> 
</form> 

<script> 

function validateForm(){ 
      if($('input[type=text], input[type=password]').val()!=$('input[type=text], input[type=password]').attr("default")){ 
       $("#form1").submit(); 
      }else{ 
       return false; 
      } 
     } 

$(document).ready(function(){ 

     $('input[type=text], input[type=password]').focus(function() { 

      if($(this).val() === $(this).attr("default")) 
      { 
       $(this).val(""); 
      } 
     }).blur(function(){ 
      if($(this).val().length == 0) 
      { 
       $(this).val($(this).attr("default")); 
      } 
     }); 
    }); 


</script> 
+0

這似乎並沒有工作......它提醒時,點擊提交按鈕,但仍形式提交,雖然默認值都沒有改變...... – netizen0911

+0

它的工作,如果你channge的'validateForm'功能..所以我改變它,和它的工作.. '($( 「#exampleinput」)。VAL()!== $( 「#exampleinput」)。ATTR( 「默認」))'然後提交表單 – mehdi

0

你去那裏(working fiddle),注意在輸入ID的用法:

<form id="form1" action="process.php" method="post"> 
    <input type="text" id="un" name="un" value="Username"/> 
    <input type="password" id="pw" name="pw" value="Password"/> 
    <input type="submit" value="Submit"/> 
</form> 

純JS:

var form1 = document.getElementById("form1"); 
form1.onsubmit = function() { 
    var un = document.getElementById("un"); 
    var pw = document.getElementById("pw"); 
    if (un.value == "" || pw.value == "") { 
     return false; 
    } 
}; 
+0

似乎如果不工作...它仍然提交表單默認值... – netizen0911