页面加载时我有这个
<input class="input" id="accountNameUsernameForm_name" name="profile[real_name]" size="30" type="text" value="George">
当按下提交触发器时,我想检查输入字段中的当前文本是否与其value属性相同?
if ( $('.input').val() != $('.input').attr('value') ) {
$(this).addClass('formLoading');
}
然而问题是,val()和attr('value')总是相同的。什么函数现在检索输入中的当前文本而不查看其value属性?
谢谢
顺便说一句。它不适用于text()
!
答案 0 :(得分:7)
// save the default value on page load
var defaultUsername = $('.input').val();
// on submit, compare
if ( $('.input').val() != defaultUsername ) {
$(this).addClass('formLoading');
}
答案 1 :(得分:0)
使用输入的ID而不是input
,然后尝试这个..
inputValue = $("#accountNameUsernameForm_name").val()
然后在你的表单处理程序中尝试这个..
inputText = $("#accountNameUsernameForm_name").attr('value')
if(inputValue ! = inputText ){
$(this).addClass('formLoading');
}
答案 2 :(得分:0)
$('.input').val() is equal to $('.input').attr('value') always.
我建议您包含一个隐藏字段或将值保存在变量
中答案 3 :(得分:0)
问题是当文本被更改时,value属性也更新。在页面加载时,您应该将初始值存储为变量,然后在回调中检查它。
答案 4 :(得分:0)
对此有所了解:
$('.input').each(function() {
if($(this).val() != this.defaultValue) {
$(this).addClass('formLoading');
}
});
答案 5 :(得分:0)
使用defaultValue
属性。
$('.input')[0].defaultValue
defaultValue属性设置或返回值属性中指定的文本字段的默认值。
有时人们会忘记jQuery只是JavaScript,简单的事情应该以简单的方式完成。