一页里有两个表格.如何设置jQuery脚本不影响两个表单按钮

I have two forms in a page. How to set the jQuery script not to affect both forms buttons?

本文关键字:两个 脚本 jQuery 影响 表单 按钮 设置 表格 一页 何设置      更新时间:2023-09-26

在我的页面我有两个窗体。jQuery脚本禁用表单的两个按钮,直到一个下拉值被选中,如您在这里看到http://jsfiddle.net/baW53/

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

如何做到这一点?

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>

你必须像别人说的那样使用选择器。下面是对jsfiddle的修改:http://jsfiddle.net/baW53/1/

基本上,如果是初始调用,我们改变所有按钮的属性,即,类为submit的按钮,否则我们找到下拉菜单的兄弟按钮并使用其id。

这是相关的部分:

if (e) {
        var btn = "#" + jq(this).siblings('button').attr('id');
} else {
        var btn = ".submit";
}

您选择每个提交按钮与此选择器jq('.submit'),您需要使其更具体。有很多方法可以做到这一点。

一种方法是从你的事件对象中获得选择控件,然后写一个模式到它的父窗体,然后到选择按钮。

得到最接近的形式:jQuery查找父表单

jq(ev).closest("form").find(".submit")

我不确定ev是正确的,您可能必须从事件中挖掘控制

您可以使用更复杂的选择器找到特定的元素。例如,如果你给你的表单id="forma"id="formb",你可以做jq(#forma .submit)来获得一个按钮。

如果你坚持使用name属性,我相信选择器将是jq([name="forma"] .submit)或接近它的东西。