Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如果textarea为空,则禁止检查其他复选框_Javascript_Jquery_Html_Twitter Bootstrap_Checkbox - Fatal编程技术网

Javascript 如果textarea为空,则禁止检查其他复选框

Javascript 如果textarea为空,则禁止检查其他复选框,javascript,jquery,html,twitter-bootstrap,checkbox,Javascript,Jquery,Html,Twitter Bootstrap,Checkbox,带有一些textarea和sumbit按钮的表单都被禁用,每个textarea旁边都有一个复选框 选中复选框时: 1-显示一条消息(您不应让激活的文本区域为空) 2-提交按钮保持禁用状态 3-开始写入时,隐藏消息并启用按钮 复选框未选中时: 1-消息隐藏 2-如果有一些文本,则与之相关的文本区域被清除 3按钮返回到禁用状态 到目前为止,我的代码如下,一切都很完美。 现在,如果已经有一个复选框已被空文本区域选中,我如何防止选中其他复选框? 逻辑是,如果文本区域已启用,则它必须接收文本 //处理复

带有一些textarea和sumbit按钮的表单都被禁用,每个textarea旁边都有一个复选框

选中复选框时:

1-显示一条消息(您不应让激活的文本区域为空)

2-提交按钮保持禁用状态

3-开始写入时,隐藏消息并启用按钮

复选框未选中时:

1-消息隐藏

2-如果有一些文本,则与之相关的文本区域被清除

3按钮返回到禁用状态

到目前为止,我的代码如下,一切都很完美。 现在,如果已经有一个复选框已被空文本区域选中,我如何防止选中其他复选框? 逻辑是,如果文本区域已启用,则它必须接收文本

//处理复选框
$('input:checkbox').change(function(){
if($(this.prop('checked')){
$(“.textareaalert”).text(“不要让此激活的textarea为空”);
$(“.textraealert”)。向下滑动(“慢速”);
$(“#提交”).prop(“已禁用”,true);
}否则{
$(“.textraealert”).slideUp(“慢速”);
$(“#提交”).prop(“已禁用”,true);
$(“文本区域”).val(“”);
}
});
//处理文本区
$(“textarea”).keyup(函数(){
var textareaLength=$(this).val().length;
如果(textareaLength==0){
$(“.textareaalert”).text(“不要让此激活的textarea为空”);
$(“.textraealert”)。向下滑动(“慢速”);
$(“#提交”).prop(“已禁用”,true);
}否则{
$(“.textraealert”).slideUp(“慢速”);
$(“#提交”).prop(“已禁用”,错误);
}
});

婴儿期
活跃的
//更多文本区域如下

您可以使用
$('input:checkbox:checked')
filter()
方法添加签入
复选框
更改事件,以查找是否有任何空
文本区域的选中
复选框
。如果有,则不允许选中
复选框

$('input:checkbox')。更改(函数(){
if($(this.prop('checked')){
//检查是否有文本区域为空的复选框
var length=$('input:checkbox:checked')。不是(this)。过滤器(函数(){
return!$(this).closest('.form group').find('textarea').val();
}).长度;
//不允许选中复选框
如果(长度>0){
$(this.prop('checked',false);
返回;
}
$(“.textareaalert”).text(“不要让此激活的textarea为空”);
$(“.textraealert”)。向下滑动(“慢速”);
$(“#提交”).prop(“已禁用”,true);
}否则{
$(“.textraealert”).slideUp(“慢速”);
$(“#提交”).prop(“已禁用”,true);
$(“文本区域”).val(“”);
}
});
$(“textarea”).keyup(函数(){
var textareaLength=$(this).val().length;
如果(textareaLength==0){
$(“.textareaalert”).text(“不要让此激活的textarea为空”);
$(“.textraealert”)。向下滑动(“慢速”);
$(“#提交”).prop(“已禁用”,true);
}否则{
$(“.textraealert”).slideUp(“慢速”);
$(“#提交”).prop(“已禁用”,错误);
}
});

婴儿期
活跃的
婴儿期
活跃的

非常感谢您。这正是我需要的。但是我有两个其他复选框,它们没有链接到任何文本区域。如何将它们从函数中删除?对不同类型的复选框使用不同的类。好的,我可以对不同类型的复选框使用不同的类,这是真的,但是连接到文本区域的复选框太多了。如何仅使用未连接到任何文本区域的复选框将其从功能中删除。我尝试了,但失败了。请将类用于其他复选框,如
noTextarea
。然后使用
$('input:checkbox').not('.noTextarea').change()