2010-08-20 122 views
1

文本輸入的值對於文本輸入定義爲:比較反對默認值

<input type="text" name="Email0" id="Email0" value="1st Email" /><br /> 

如果用戶改變文本框的值我只是通過這樣的形式一起提交...如果他們_haven」改變它 - 我需要傳遞一個'null'的值。

$('#frmSignup').submit(function() { 
    if (Email0.value != Email0.defaultValue) { 
     alert("hit here"); //not hitting here 
    } 
}); 

你會注意到jQuery存在,但我不清楚如何檢索輸入的defaultValue到jQuery。

THX

回答

4

可以使用數組語法從一個jQuery對象引用基礎DOM元素...

$("#frmSignup").submit(function() { 
    var email = $("#Email0")[0]; // gets DOM element 

    if(email.value != email.defaultValue) { 
     alert("hit here"); 
    } 
}); 
0

有幾種可能性:

  1. 如果你可以改變html的佈局,改變你的輸入是這樣的:

    <input type="text" name="Email0" id="Email0" value="1st Email" data-default="1st Email"/> 
    

    ,那麼你可以檢查這樣的變化:

    $('#frmSignup').submit(function){ 
        $form = $(this).closest('form'); 
        $email = $('input[name=Email0]', $form); 
        if ($email.val() != $email.attr('data-default')) { 
        // value has changed 
        } 
    }); 
    
  2. 如果你想要一個純JavaScript的解決方案,下面的代碼將存儲的默認值,你改變它之前:

    $(function(){ // short version of $(document).ready(callback); 
        $email = $('#frmSignup input[name=Email0]'); 
        $email.data('default',$email.val()); 
    }); 
    

    現在你可以看看這樣的變化:

    $('#frmSignup').submit(function){ 
        $form = $(this).closest('form'); 
        $email = $('input[name=Email0]', $form); 
        if ($email.val() != $email.data('default')) { 
        // value has changed 
        } 
    });