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答案是否定的。答案是否定的。答案是否定的。答案是否定的。答案是否定的。答案是否定的。答案是否定的。答案是否定的。答案是否定的。答案是否定的