jQuery:如何根据输入值属性测试输入文本?

时间:2011-11-04 11:01:13

标签: jquery html forms input

以下案例:使用以下内容呈现页面...

<input class="textInput error" id="accountMailaddress" name="user[email]" size="30" type="text" value="some@mailaddress.com">

所以我看到已经填写了“some@mailaddress.com”的输入。 如果用户更改其中的文本,则输入的value属性在我的dom-inspector中不会更改。所以我假设可以测试用户只是根据原始值键入的文本(在value属性中)。

我该怎么办?

提前谢谢。

更多信息......

e.g。我正在每个按键上记录$('.textInput').val();,val();始终保存用户输入的当前文本。我只需要将原始值存储在变量中吗?

4 个答案:

答案 0 :(得分:2)

$('#accountMailaddress').val() == $('#accountMailaddress')[0].defaultValue

另外,defaultValue为cross browser compatible

答案 1 :(得分:0)

你的意思是这样的:

   var defaultText = $('.textInput').val();

   if($('.textInput').val() == defaultText){
      // Email address matched
   }

答案 2 :(得分:0)

我认为使用jquery attr方法可以工作,而不必先存储默认值。像这样:

if ($('.textInput').val() == $('.textInput').attr('value'){
   // Email address matched
}

答案 3 :(得分:0)

你可以做这样的事情

var previousValue ;
$('.textInput').focus(function () {
previousValue = $(this).val();
})
.change(function () {
if(previousValue==$(this).val())
  //then do something
});

但上面是用户只更改一次以使其全面

$('.textInput').focus(function () {
if($(this).data("key")!==undefined)
    $(this).data("key")= $(this).val();
})
.change(function () {
if($(this).data("key")==$(this).val())
  //then do something
});

我也非常喜欢defaultValue属性..