javascript:如果选中复选框且textarea为空,则发出警报

javascript:如果选中复选框且textarea为空,则发出警报,javascript,html,Javascript,Html,我怎么能做到?我希望在用户单击提交按钮时发出警报,并且此警报必须仅在选中复选框且textarea为空时显示…因为此textarea是隐藏的,并且在选中复选框时显示 例: HTML: Javascript: $("#check").change(function () { $("#show").toggle($("#check:checked").length > 0);}); 不确定你的小提琴,但从你的问题你可以这样做:(你还需要适当调整你的HTML) 更新 $(“表格”)。提交(功能

我怎么能做到?我希望在用户单击提交按钮时发出警报,并且此警报必须仅在选中复选框且textarea为空时显示…因为此textarea是隐藏的,并且在选中复选框时显示

例:

HTML:

Javascript:

$("#check").change(function () {
$("#show").toggle($("#check:checked").length > 0);});

不确定你的小提琴,但从你的问题你可以这样做:(你还需要适当调整你的HTML)

更新

$(“表格”)。提交(功能(e){
if($(“#check”).not(“:checked”)&&($(“#show textarea”).val().length这是您的答案

HTML:


选中

您需要发出警报并停止表单处理。 要阻止表单处理,请使用:
event.preventDefault();

证明:

HTML:

<form>
    <label for="check">other
    <input type="checkbox" name="check0" id="check"></label>
<br>
    <div id="show">
        <textarea cols="20" rows="5"></textarea>
<br>
        </div>
    <button type="submit">Submit</button>
<form>
$("#check").change(function(){
    $("#show").toggle($("#check").prop('checked'));
});

$('form').submit(function(event){

    if( $("#check").prop('checked') && !$.trim($("#show textarea").val()).length ){
           alert('checkbox chcked textarea empty');
        event.preventDefault();
        return;
    }

    event.preventDefault(); // here only for testing
    alert('form submitted');
});

你的提琴对我不起作用。更改jQuery版本修复了以下问题:Ops!loop!当填充文本区域时,警报将继续,返回值必须为false才能不提交表单。是的,这就是我更改的内容,并添加了防止在属性不正确时提交表单的功能。@leandrouel在if条件下添加此项&!$。trim($(“#显示文本区域”).val()).length
$("form").submit(function(e) {
    if ($("#check").not(":checked") && $('#show textarea').val().length <= 0) { e.preventDefault(); alert('error'); }   
});
<label for="check">other
    <input type="checkbox" name="check0" id="check"></label>
    <div id="show">
        <textarea cols="20" rows="5"></textarea>
    </div>

    <input type="submit" id="mysubmit">
$("#check").change(function(){
    $("#show").toggle($("#check:checked").length > 0);
});

$("#mysubmit").click(function(){
    if($("#check:checked").length > 0){
        alert("Some text");
    }
});
<form>
    <label for="check">other
    <input type="checkbox" name="check0" id="check"></label>
<br>
    <div id="show">
        <textarea cols="20" rows="5"></textarea>
<br>
        </div>
    <button type="submit">Submit</button>
<form>
$("#check").change(function(){
    $("#show").toggle($("#check").prop('checked'));
});

$('form').submit(function(event){

    if( $("#check").prop('checked') && !$.trim($("#show textarea").val()).length ){
           alert('checkbox chcked textarea empty');
        event.preventDefault();
        return;
    }

    event.preventDefault(); // here only for testing
    alert('form submitted');
});