2014-09-29 46 views
0

我有简单的形式:JS隐藏按钮,当变化选择选项

<form action=""> 
    <select name="gender" onchange="myFunction()"> 
     <option value="m">male</option> 
     <option value="f">female</option> 
    </select> 
    <input type="hidden" name="user_id" value="1"> 
    <input type="submit" id="save1" value="Save"> 
</form> 

<form action=""> 
    <select name="gender" onchange="myFunction()"> 
     <option value="m">male</option> 
     <option value="f">female</option> 
    </select> 
    <input type="hidden" name="user_id" value="2"> 
    <input type="submit" id="save2" value="Save"> 
</form> 

JS:

function myFunction() { 
    $("#save").first().hide(); 
} 

我想隐藏按钮“保存”仅当选择(“社会性别”)已更改选项为每个用户(表格)。

问题是,当我更改用户2的性别时,用户1的按钮隐藏。

注:有许多形式和用户

+2

无效markup..'id's'不能是重复的。 – 2014-09-29 07:56:12

+1

给两个按钮不同的ID,它会工作 – 2014-09-29 07:57:18

+0

@Kartikeya好点。改变。我正在按功能创建窗体。 – 2014-09-29 07:57:29

回答

3

试试这个:

$("select").change(function() { 
    $(this).parent("form").find("input[type='submit']").hide(); 
}); 
1

试试这个:

$("select").on("change", function() { 
    $(this).parent().children('input[type=submit]').hide(); 
}); 

工作Fiddle

0

或者这样:

$('form>select').change(function(e){ 
    $(e.currentTarget).siblings("input[type='submit']").hide(); 
}); 
0

你应该使用jquery,在表单上绑定动作并在'select'框中触发,然后使用兄弟来找到该表单中的按钮。 例子:

$('form').on('change', 'select', function() { 
    var condition = ($(this).val() && $(this).val() != ""); // true : show button, false : hide button 
     $(this).siblings('input[type="submit"]').toggle(condition); 
}) 
0

试试这个: - FIDDLE

$("select").on("change",function() { 
$(this).parent().find("input[type=submit]").hide(); 
});