Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/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 我一页有两张表格。如何将jQuery脚本设置为不影响两个表单按钮?_Javascript_Jquery - Fatal编程技术网

Javascript 我一页有两张表格。如何将jQuery脚本设置为不影响两个表单按钮?

Javascript 我一页有两张表格。如何将jQuery脚本设置为不影响两个表单按钮?,javascript,jquery,Javascript,Jquery,在我的页面中,我有两个表单。jQuery脚本禁用表单的两个按钮,直到选择了一个下拉值,如您在这里看到的 问题是,我只需要激活下拉值更改/选择的按钮。现在,如果我在第一个表单上选择一个值,它也会激活第二个表单的按钮。但它必须只激活同一表单的按钮 如何做到这一点 var jq = $.noConflict(); jq(document).ready(function (){ validate(); jq('select').change(validate); }); functi

在我的页面中,我有两个表单。jQuery脚本禁用表单的两个按钮,直到选择了一个下拉值,如您在这里看到的

问题是,我只需要激活下拉值更改/选择的按钮。现在,如果我在第一个表单上选择一个值,它也会激活第二个表单的按钮。但它必须只激活同一表单的按钮

如何做到这一点

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方法检查两个下拉列表的值,而不是更改的值。这里有一个快速解决方案: