Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/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 将所有属性为';必需的';复选框除外_Javascript_Jquery - Fatal编程技术网

Javascript 将所有属性为';必需的';复选框除外

Javascript 将所有属性为';必需的';复选框除外,javascript,jquery,Javascript,Jquery,我正在尝试在任何元素之后添加一个“span”,该元素具有“必需”属性,但“复选框”除外,但似乎不适用于“复选框”(复选框仍具有span,复选框必须排除或不包括)。有什么想法、帮助、线索、建议、建议吗?下面是我的片段 $(文档).ready(函数(){ //向具有required属性的所有输入、选择等添加required指示符。 $(':必填项:不([name=“checkbox”])。在('This field is required')之后; }); :必需的不是有效的伪选择器,请

我正在尝试在任何元素之后添加一个“span”,该元素具有“必需”属性,但“复选框”除外,但似乎不适用于“复选框”(复选框仍具有span,复选框必须排除或不包括)。有什么想法、帮助、线索、建议、建议吗?下面是我的片段

$(文档).ready(函数(){
//向具有required属性的所有输入、选择等添加required指示符。
$(':必填项:不([name=“checkbox”])。在('This field is required')之后;
});




  • :必需的
    不是有效的伪选择器,请使用
  • 复选框
    类型
    不是
    名称
    。选择器
    [name=“checkbox”]
    将选择具有
    名称
    属性值的所有元素作为
    复选框
  • 而不是

    $(':required:not([name="checkbox"])')
    
    使用

    $(文档).ready(函数(){
    //向具有required属性的所有输入、选择等添加required指示符。
    $('[必需]:不是([type=“checkbox”])。在('此字段是必需的')之后;
    });
    
    
    


    • 没有
      :必需的
      伪选择器
    • 您应该使用
      [type=“checkbox”]
      (而不是
      [name=“checkbox”]
      ),因为checkbox是属性
      type
      的值

    只有在您愿意的情况下,才可以使用CSS2/3执行此操作:

    <style>
    input span {
        display: none;
    }
    
    input.required:not([type="checkbox"]) + span {
        display:block;
        padding: 5px;
        border: 1px solid #ff0000;
        content: "required!";
    }
    </style>
    
    <div>
        <input type="checkbox" name="checkbox" value="1" checked="checked"     class="required" />
    <span></span>
    </div>
    <div>
        <input type="text" name="text" value="" class="required" />
    <span></span>
    </div>
    
    
    输入范围{
    显示:无;
    }
    输入。必填项:不([type=“checkbox”])+span{
    显示:块;
    填充物:5px;
    边框:1px实心#ff0000;
    内容:“必选!”;
    }
    
    我们正在做的是将跨度设置为隐藏,但是如果输入具有所需的类,并且不是复选框,那么跨度将显示。您可以使用::after和::before对span执行其他种类的操作。CSS中的+是相邻的选择器。我们需要添加跨距,因为输入[type=text]的::before和::after选择器不起作用,而它适用于其他一些输入字段

    JS小提琴:

    不错,但是如果我想同时排除复选框和单选输入,该怎么办?
    $('[required]:not([type="checkbox"])')
    
    <style>
    input span {
        display: none;
    }
    
    input.required:not([type="checkbox"]) + span {
        display:block;
        padding: 5px;
        border: 1px solid #ff0000;
        content: "required!";
    }
    </style>
    
    <div>
        <input type="checkbox" name="checkbox" value="1" checked="checked"     class="required" />
    <span></span>
    </div>
    <div>
        <input type="text" name="text" value="" class="required" />
    <span></span>
    </div>