我有4个textareas和一个被禁用的提交按钮,除了每个textarea之外还有一个复选框来启用它们。
选中复选框时:
1-显示一条消息(不要让此激活的textarea为空)。 2-提交按钮保持禁用状态。 3-开始写入时:启用消息隐藏和提交按钮。
取消选中复选框时:
1-消息隐藏,
与该复选框相关的2- textarea已清除
3-提交按钮返回禁用状态。
使用下面的代码,这仅适用于第一个textarea。 但对于其他textareas我只有这个问题:
1-开始写入时:消息一直显示,提交按钮保持禁用状态。 我该如何解决这个问题?
//Function that handle the checkbox
$('input:checkbox').change(function() {
if ($(this).prop('checked')) {
$(".textareaalert").text("Don't let this activated textarea empty");
$(".textareaalert").slideDown("slow");
$("#submit").attr("disabled", "disabled");
} else {
$(".textareaalert").slideUp("slow");
$("#submit").attr("disabled", "disabled");
$("textarea").val('');
}
});
//Function that handle the textarea
$("textarea").keyup(function(){
var textareaLength = $("textarea").val().length;
if ( textareaLength ==0 ) {
$(".textareaalert").text("Don't let this activated textarea empty");
$(".textareaalert").slideDown("slow");
$("#submit").attr("disabled", "disabled");
} else {
$(".textareaalert").slideUp("slow");
$("#submit").removeAttr("disabled");
}
});
答案 0 :(得分:1)
在代码的第二部分中,您使用$("textarea").keyup(function(){
var textareaLength = $(this).val().length;
if ( textareaLength ==0 ) {
$(".textareaalert").text("Don't let this activated textarea empty");
$(".textareaalert").slideDown("slow");
$("#submit").attr("disabled", "disabled");
} else {
$(".textareaalert").slideUp("slow");
$("#submit").removeAttr("disabled");
}
});
。
此行将采用第一个textarea的值,而不是当前值。
试试这个:
var arr = await [1,2,3,4,5].map(async (index) => {
return await new Promise((resolve, reject) => {
setTimeout(() => {
resolve(index);
console.log(index);
}, 1000);
});
});
console.log(arr); // <-- [Promise, Promise, Promise ....]
// i would expect it to return [1,2,3,4,5]