如何使用 jquery 启用/禁用提交按钮的列表中的多个下拉列表中仅 select 一个下拉列表?
How to select only one dropdown from multiple dropdowns in a list with submit button enable /disable using jquery?
我正在尝试在 table 中使用提交按钮创建多个下拉菜单,该按钮应该只允许 select 一个下拉选项。如果第二个下拉菜单是 selected 那么它应该弹出一条不允许的消息。
注意:当我在多个下拉列表中比较相同的选项时成功,但在比较不同的选项时失败。所以请解决这个问题。
我试过这个url:
http://jsfiddle.net/dvtk974d/
$(document).ready(function() {
$('#table1 tr').each(function() {
$(this).find('select').change(function() {
//alert($(this).val());
$("#btSubmit").removeAttr("disabled");
if ($(this).val() == 'action') {
$("#btSubmit").prop('disabled', true);
}
if ($('#table1').find('select option[value=' + $(this).val() + ']:selected').length > 1 && $(this).val() !== "action") {
alert('option is already selected');
$(this).val($(this).find("option:first").val());
}
});
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<h3> Table 1</h3>
<table id="table1" border="1">
<tr>
<td>select any action</td>
<td>
<select>
<option value="action">--Action--</option>
<option value="one">One</option>
<option value="two">Two</option>
<option value="three">Three</option>
</select>
</td>
</tr>
<tr>
<td>select any action</td>
<td>
<select>
<option value="action">--Action--</option>
<option value="one">One</option>
<option value="two">Two</option>
<option value="three">Three</option>
</select>
</td>
</tr>
<tr>
<td>select any action</td>
<td>
<select>
<option value="action">--Action--</option>
<option value="one">One</option>
<option value="two">Two</option>
<option value="three">Three</option>
</select>
</td>
</tr>
<tr>
<td>select any action</td>
<td>
<select>
<option value="action">--Action--</option>
<option value="one">One</option>
<option value="two">Two</option>
<option value="three">Three</option>
</select>
</td>
</tr>
</table>
<br/>
<input type="submit" value="Submit" title="Submit" name="submit" class="btn" id="btSubmit" disabled="disabled">
<br>
Select 所有 select
元素,然后用 .not(this)
排除当前并禁用它们。如果用户再次选择 "action",您可以重新启用它们。 Fiddle: http://jsfiddle.net/ilpo/dvtk974d/3/
作为 alert
的替代方法,您可以使用:
$(document).ready(function () {
var globalSelect=false;
$('#table1 tr').each(function () {
$(this).find('select').change(function () {
//alert($(this).val());
if(globalSelect)
{
if ($(this).val() == 'action') {// need to check here
$("#btSubmit").prop('disabled', true);
return;
}
alert('Option already selected');
$(this).val($(this).find("option:first").val());
return false;
}
$("#btSubmit").removeAttr("disabled");
if ($(this).val() == 'action') {
$("#btSubmit").prop('disabled', true);
globalSelect=false;
}
else
{
globalSelect=true;
}
});
});
});
我正在尝试在 table 中使用提交按钮创建多个下拉菜单,该按钮应该只允许 select 一个下拉选项。如果第二个下拉菜单是 selected 那么它应该弹出一条不允许的消息。
注意:当我在多个下拉列表中比较相同的选项时成功,但在比较不同的选项时失败。所以请解决这个问题。 我试过这个url: http://jsfiddle.net/dvtk974d/
$(document).ready(function() {
$('#table1 tr').each(function() {
$(this).find('select').change(function() {
//alert($(this).val());
$("#btSubmit").removeAttr("disabled");
if ($(this).val() == 'action') {
$("#btSubmit").prop('disabled', true);
}
if ($('#table1').find('select option[value=' + $(this).val() + ']:selected').length > 1 && $(this).val() !== "action") {
alert('option is already selected');
$(this).val($(this).find("option:first").val());
}
});
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<h3> Table 1</h3>
<table id="table1" border="1">
<tr>
<td>select any action</td>
<td>
<select>
<option value="action">--Action--</option>
<option value="one">One</option>
<option value="two">Two</option>
<option value="three">Three</option>
</select>
</td>
</tr>
<tr>
<td>select any action</td>
<td>
<select>
<option value="action">--Action--</option>
<option value="one">One</option>
<option value="two">Two</option>
<option value="three">Three</option>
</select>
</td>
</tr>
<tr>
<td>select any action</td>
<td>
<select>
<option value="action">--Action--</option>
<option value="one">One</option>
<option value="two">Two</option>
<option value="three">Three</option>
</select>
</td>
</tr>
<tr>
<td>select any action</td>
<td>
<select>
<option value="action">--Action--</option>
<option value="one">One</option>
<option value="two">Two</option>
<option value="three">Three</option>
</select>
</td>
</tr>
</table>
<br/>
<input type="submit" value="Submit" title="Submit" name="submit" class="btn" id="btSubmit" disabled="disabled">
<br>
Select 所有 select
元素,然后用 .not(this)
排除当前并禁用它们。如果用户再次选择 "action",您可以重新启用它们。 Fiddle: http://jsfiddle.net/ilpo/dvtk974d/3/
作为 alert
的替代方法,您可以使用:
$(document).ready(function () {
var globalSelect=false;
$('#table1 tr').each(function () {
$(this).find('select').change(function () {
//alert($(this).val());
if(globalSelect)
{
if ($(this).val() == 'action') {// need to check here
$("#btSubmit").prop('disabled', true);
return;
}
alert('Option already selected');
$(this).val($(this).find("option:first").val());
return false;
}
$("#btSubmit").removeAttr("disabled");
if ($(this).val() == 'action') {
$("#btSubmit").prop('disabled', true);
globalSelect=false;
}
else
{
globalSelect=true;
}
});
});
});