Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/254.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 选中该字段的复选框时设置Attr Required_Javascript_Php_Jquery - Fatal编程技术网

Javascript 选中该字段的复选框时设置Attr Required

Javascript 选中该字段的复选框时设置Attr Required,javascript,php,jquery,Javascript,Php,Jquery,我有一些循环行,每行都有一个复选框。在每一行中都有一个下拉列表,我希望在选中该行中的复选框时将其设置为required MARK NAME QUANTITY --------------------------------------------------- [] inputForName1 Choose => 1,2,3,4,5 ------------------------------

我有一些循环行,每行都有一个复选框。在每一行中都有一个下拉列表,我希望在选中该行中的复选框时将其设置为
required

MARK       NAME                   QUANTITY         
---------------------------------------------------
 []     inputForName1        Choose => 1,2,3,4,5    
---------------------------------------------------
 []     inputForName2        Choose => 1,2,3,4,5    
---------------------------------------------------
 []     inputForName3        Choose => 1,2,3,4,5    
---------------------------------------------------
 []     inputForName4        Choose => 1,2,3,4,5  
---------------------------------------------------
 []     inputForName5        Choose => 1,2,3,4,5   
---------------------------------------------------
                                   [SUBMIT]
(此处,
[]
是一个复选框,
选择=>
是一个下拉选择)

echo'
回声'
选择“数量”;
对于($q=1;$q数量;$q++){
回显“.$q.”;}
回声';
回声';
}
}
?>

我想您没有忘记标记:
并关闭输入标记

因此,对于您的代码,您可以尝试以下内容(PHP/HTML部分):

Javascript部分:

function enableList(element) {
    var select = document.getElementById("select"+element.id.substring(element.id.length-1));

    if(element.checked === true){
        select.disabled = false;
        checkSelect(select);
    }else{
        select.disabled = true;
        select.selectedIndex = 0;
    }
}

function checkSelect(element){
    if(!validate_select(element)){
        element.setCustomValidity("Choose an option");
    }else{
        element.setCustomValidity("");
    }
}

function validate_select(select){
    if(select.selectedIndex === 0){
        return false;
    }else{
        return true;
    }
}
编辑:为了达到新的目的(仅在至少选中一项输入时提交):

在复选框中添加一个类作为标识符:
class=“chb_group”
(这样您就不必担心其他复选框了)。。。提交按钮的id可能是:
id=“btn_submit”
默认禁用

所以你加上:

function enableSubmit(){
    if (document.querySelector('.chb_group:checked')) {
        document.getElementById('btn_submit').disabled = false;
    } else {
        document.getElementById('btn_submit').disabled = true;
    }
}
打电话进来:

function enableList(element) {
    var select = document.getElementById("select"+element.id.substring(element.id.length-1));
    enableSubmit();
    .....
}

注意:此代码仅在“现代”浏览器中有效,因为有一些函数和属性,如:
setCustomValidity
querySelector
我想您没有忘记标记:
并关闭输入标记

因此,对于您的代码,您可以尝试以下内容(PHP/HTML部分):

Javascript部分:

function enableList(element) {
    var select = document.getElementById("select"+element.id.substring(element.id.length-1));

    if(element.checked === true){
        select.disabled = false;
        checkSelect(select);
    }else{
        select.disabled = true;
        select.selectedIndex = 0;
    }
}

function checkSelect(element){
    if(!validate_select(element)){
        element.setCustomValidity("Choose an option");
    }else{
        element.setCustomValidity("");
    }
}

function validate_select(select){
    if(select.selectedIndex === 0){
        return false;
    }else{
        return true;
    }
}
编辑:为了达到新的目的(仅在至少选中一项输入时提交):

在复选框中添加一个类作为标识符:
class=“chb_group”
(这样您就不必担心其他复选框了)。。。提交按钮的id可能是:
id=“btn_submit”
默认禁用

所以你加上:

function enableSubmit(){
    if (document.querySelector('.chb_group:checked')) {
        document.getElementById('btn_submit').disabled = false;
    } else {
        document.getElementById('btn_submit').disabled = true;
    }
}
打电话进来:

function enableList(element) {
    var select = document.getElementById("select"+element.id.substring(element.id.length-1));
    enableSubmit();
    .....
}

注意:此代码仅在“现代”浏览器中工作,因为有一些函数和属性,如:
setCustomValidity
querySelector
这是一个
javascript
答案。下面是
Jquery
的答案:

您可以更改我在复选框更改事件中分配给自己的
req
属性:

$("input[name^='checkbox']").change(function () {
    var id = this.name.substring(8);
    if (this.checked) {
        $("[name='esquantity" + id + "']").attr("req", "true");
    } else {
        $("[name='esquantity" + id + "']").attr("req", "false");
    }
});
然后在
Submit
上单击,用
req==“true”
检查列表并执行以下操作:

$("input[name='Submit']").click(function () {
    var i;
    for(i = 1; i <= parseInt($("[name^='esquantity']").length); i++) {
        if ($("[name='esquantity[" + i + "]']").attr("req") == "true" &&
            $("[name='esquantity[" + i + "]']").val() == "")
            alert("Please select a value for the required lists");
    }
});
$(“输入[name='Submit']”)。单击(函数(){
var i;

对于(i=1;i这是一个
javascript
答案。下面是
Jquery
答案:

您可以更改我在复选框更改事件中分配给自己的
req
属性:

$("input[name^='checkbox']").change(function () {
    var id = this.name.substring(8);
    if (this.checked) {
        $("[name='esquantity" + id + "']").attr("req", "true");
    } else {
        $("[name='esquantity" + id + "']").attr("req", "false");
    }
});
然后在
Submit
上单击,用
req==“true”
检查列表并执行以下操作:

$("input[name='Submit']").click(function () {
    var i;
    for(i = 1; i <= parseInt($("[name^='esquantity']").length); i++) {
        if ($("[name='esquantity[" + i + "]']").attr("req") == "true" &&
            $("[name='esquantity[" + i + "]']").val() == "")
            alert("Please select a value for the required lists");
    }
});
$(“输入[name='Submit']”)。单击(函数(){
var i;


对于(i=1;我不擅长
php
,但我看不到任何地方可以检查复选框并将特定数量下拉列表设置为
required
。我看到的唯一一件事是,对于每个添加的对象,将数量字段设置为
required
。是的,这就是问题所在。我想让它成为必需的,如果它是必需的是选中的。你知道吗?相反,我不太擅长Jquery。据我所知,我可以在选中时将属性设置为required来实现这一点。也许你可以在Jquery脚本中帮助我实现这一点?如果你能为我添加一个示例到edit中会更好。我不太擅长
php
,但我看不到你在任何地方检查复选框s并将特定数量下拉列表设置为
必需的
。我看到的唯一一件事是,对于每个添加的对象,您将数量字段设置为
必需的
。是的,这就是问题所在。我想让它成为必需的,只要选中它。你知道吗?相反,我在Jquery方面不太在行。据我所知,我可以通过设置一个at来做到这一点选中时,属性是必需的。也许你可以在jquery脚本中帮助我实现这一点?如果你能为我添加一个示例,让我编辑它,最好只禁用数量下拉列表。而且必需的函数不起作用。选择的帮助设置
required
并不是真正有用的,这就是为什么我选择禁用/启用而不是code you Gived没有任何作用。它只是禁用它。当它被选中时,下拉列表仍然是禁用的。你能修改上面的代码吗?很抱歉在
$i++
-->
$i
中犯了一个错误。在几个输入中,我编辑了我的答案。它只禁用数量下拉列表。并且所需的功能不起作用。帮助设置
required
对于选择来说并不是真正有用的,这就是为什么我选择disabled/enabled,但是你给出的代码没有任何效果。它只是禁用它。当选中时,下拉列表仍然是禁用的。你能修改上面的代码吗?很抱歉在
$I++
-->
$I
中犯了一个错误。在几个输入中,我编辑了m答案是否定的。答案是否定的。答案是否定的。答案是否定的。答案是否定的。答案是否定的。答案是否定的。答案是否定的。答案是否定的。答案是否定的