我有一个按钮,可以动态创建文本框,还有另一个名为“清除”的按钮。
如果任何文本框中没有文本,则清除按钮将被禁用,否则它将被启用。它适用于dom加载时创建的文本框,但对于动态创建的文本框无效。
以下是HTML:
如果任何文本框中没有文本,则清除按钮将被禁用,否则它将被启用。它适用于dom加载时创建的文本框,但对于动态创建的文本框无效。
以下是HTML:
<input type="button" value="Click Me" class="a" />
<input type="button" value="Clear" class="a" id="clearBasicSearch" />
<div id="basicSearchFields">
<input type="text" />
</div>
Javascript
$(".a").click(function () {
$("#basicSearchFields").append("<input type='text' class='b' />");
});
/*$(".b").live("keyup", function () {
//alert('you pressed ' + $(this).val());
$(this).val($(this).val().toUpperCase());
});*/
var toValidate = $("#basicSearchFields input[type='text']");
$("#clearBasicSearch").removeClass('hidden').removeClass('button').attr('disabled', true);
toValidate.live('keyup', function () {
console.log("hi");
var valid = false; //default is false
toValidate.each(function () {
if ($(this).val().length > 0) {
valid = true; //non-empty element found
return false; //break
}
});
$("#clearBasicSearch").attr('disabled', !valid).toggleClass('button', valid);
});
JSfiddle链接 - http://jsfiddle.net/TpExS/
请帮我一个忙!
.on()
,如果您使用的是>= 1.4.2,则可以并且应该使用.delegate()
代替.live()
。 - nnnnnn