以下代码用于在用户点击textarea字段后启用提交按钮。它有效,但我也试图让它只有在字段中至少有一个字符才能启用它。我试着将它包装成:
if ($(this).val().length > 1)
{
}
但是,这似乎没有用......有什么想法吗?
$("#fbss").focus(function () {
$(this).select();
if ($(this).val() == "Default text") {
$(this).val("");
$("input[id=fbss-submit]").removeClass();
$("input[id=fbss-submit]").attr('disabled', false);
$("input[id= fbss-submit]").attr('class', '.enableSubmit');
if ($('.charsRemaining')) {
$('.charsRemaining').remove();
$("textarea[id=fbss]").maxlength({
maxCharacters: 190,
status: true,
statusClass: 'charsRemaining',
statusText: 'characters left',
notificationClass: 'notification',
showAlert: false,
alertText: 'You have exceeded the maximum amount of characters',
slider: false
});
}
}
});
答案 0 :(得分:97)
这不起作用,因为从其余代码判断,文本输入的初始值是“默认文本” - 这是多个字符,因此您的if
条件始终为true
在我看来,使其成功的最简单方法是考虑到这种情况:
var value = $(this).val();
if ( value.length > 0 && value != "Default text" ) ...
答案 1 :(得分:20)
如果您想在用户输入至少一个字符后启用提交,则需要附加一个能够为您检查的关键事件。
类似的东西:
$("#fbss").keypress(function() {
if($(this).val().length > 1) {
// Enable submit button
} else {
// Disable submit button
}
});
答案 2 :(得分:1)
或者使用 keyup()
$("#fbss").keyup(function() {
if($(this).val().length >1) {
$('#submit').prop('disabled', false);
}
});