2010-08-20 82 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 
        } 
    });