Javascript 我一页有两张表格。如何将jQuery脚本设置为不影响两个表单按钮?
在我的页面中,我有两个表单。jQuery脚本禁用表单的两个按钮,直到选择了一个下拉值,如您在这里看到的 问题是,我只需要激活下拉值更改/选择的按钮。现在,如果我在第一个表单上选择一个值,它也会激活第二个表单的按钮。但它必须只激活同一表单的按钮 如何做到这一点Javascript 我一页有两张表格。如何将jQuery脚本设置为不影响两个表单按钮?,javascript,jquery,Javascript,Jquery,在我的页面中,我有两个表单。jQuery脚本禁用表单的两个按钮,直到选择了一个下拉值,如您在这里看到的 问题是,我只需要激活下拉值更改/选择的按钮。现在,如果我在第一个表单上选择一个值,它也会激活第二个表单的按钮。但它必须只激活同一表单的按钮 如何做到这一点 var jq = $.noConflict(); jq(document).ready(function (){ validate(); jq('select').change(validate); }); functi
var jq = $.noConflict();
jq(document).ready(function (){
validate();
jq('select').change(validate);
});
function validate(e){
var validation = true;
jq('select').each(function(){
if(jq(this).val().length>0)
{
validation = false;
}
});
if ( validation ) {
jq('.submit').prop('disabled', true);
} else {
jq('.submit').prop('disabled', false);
}
}
<form name="forma" method="POST" action="used-results.php" id="apliforma">
dropdown menus
<button type="submit" class="btn btn-primary submit" id='submit' >submit</button>
</form>
<form name="forma2" method="POST" action="used-results.php" id="sinthetiforma">
dropdown menus
<button type="submit" class="btn btn-primary submit" id='submit2' >submit</button>
</form>
您正在使用此选择器jq.submit选择每个提交按钮。您需要使其更具体。有很多方法可以做到这一点 一种方法是从事件对象获取select控件,然后编写一个模式,转到它的父窗体,然后向下到select按钮 获取最接近的表单: jqev.closestform.find.submit
我不确定ev是否正确,您可能必须从事件中挖掘控件。您可以找到具有更复杂选择器的特定元素。例如,如果您提供了表单id=forma和id=formb,那么您可以执行jqforma.submit以获得一个按钮
如果您坚持使用name属性,我相信选择器应该是jq[name=forma].submit或类似的东西。您必须像其他人所说的那样使用选择器。下面是对JSFIDLE的修改: 基本上,如果它是初始调用,我们将更改所有按钮的属性,即带有类submit的按钮,否则我们将找到下拉列表的同级按钮并使用其id 以下是相关部分:
if (e) {
var btn = "#" + jq(this).siblings('button').attr('id');
} else {
var btn = ".submit";
}
给我们看看你的javascript。@cale\b我已经用它更新了我的问题。我已经在JSFIDLE链接上完全使用了它,所以我认为它还可以。我正在努力使它工作,但我不能。你能把它放在我贴的小提琴上吗?谢谢,但是当我把值返回到“无”时,它有一种奇怪的行为。一开始它并没有禁用按钮,这是因为validate方法检查两个下拉列表的值,而不是更改的值。这里有一个快速解决方案: