使用 jQuery 检查多个提交按钮时出现问题
Issue with checking for multiple submit buttons using jQuery
我正在尝试使用 jQuery 检查按下了四个提交按钮中的哪一个 1.7.2 如果单击其中三个中的任何一个,我想显示一个带有按钮值的警报框。 这是 html 代码:
<body>
<table>
<tr>
<td>
<input type="submit" id="cancel" value="Cancel">
</td>
</tr>
<tr>
<td>
<input type="submit" id="find" value="Find">
</td>
</tr>
<tr>
<td>
<input type="submit" id="save" value="Save">
</td>
</tr>
<tr>
<td>
<input type="submit" id="update" value="Update">
</td>
</tr>
</table>
</body>
下面是 jQuery 函数代码:
<script>
$(function(){
$(':submit').click(function(){
var value = $(this).val();
//alert(value);
if($(this).val() == "Save" || "Find" || "Clear") {
//if($(this).val() == "Update") {
alert('The value is: ' + value);
}
});
});
</script>
如果我单击三个按钮中的任何一个,我都会显示值,但如果我单击"更新"按钮,它也会显示。 我以为我的 if 块会阻止这种情况发生?
如果我注释掉该行并改用以下代码:
if($(this).val() == "Update") {
alert('The value is: ' + value);
}
然后,只有当我单击"更新"按钮时,警报才会触发。 当我检查多个提交按钮时,这里的代码有什么问题?
你的 if 语句不正确:
if( $(this).val() == "Save" || "Find" || "Clear" )
虽然通常假设操作员是这样工作的,但事实并非如此。如果要测试该值是否等于这些字符串之一,则可能应改用$.inArray
:
if ( $.inArray( $(this).val(), [ "Save", "Find", "Clear" ] ) > -1 );
额外积分
作为一点额外的功劳,||
运算符计算两个表达式(一个在表达式的左侧,一个在表达式的右侧),并计算true
两个表达式中的任何一个是否为真。
if ( true || false ) // Evalutes to true, since one of the two was true
在尝试时,您希望查看该值是否等于这些字符串中的任何一个。如果要使用 ||
,则必须创建几个比较:
var myVal = $(this).val();
if ( ( myVal == "Save" ) || ( myVal == "Find" ) || ( myVal == "Clear" ) )
此条件的计算结果将true
是否满足任何条件。您可以看到这将如何很快变得相当冗长。
相关文章:
- 后退按钮问题
- jquery fancybox+angularJS:fancybox按钮动作问题
- jQuery-变形按钮概念-问题
- 图像缩略图库中的“下一个”和“上一个”按钮中的“问题”
- html单选按钮检查问题
- Javascript上传按钮问题,适用于Wordpress
- CKEditor内部的jQuery模式问题与按钮
- 点击jquery上的按钮问题
- 如何在窗体中使用多个按钮解决验证问题
- jquery 单选按钮更改问题
- 客户端和服务器端调用 asp 按钮的问题
- 在我的Javascript和HTML之间的表单提交按钮链接中遇到问题
- 在单击按钮时调用 jquery 函数时出现问题
- 谷歌登录按钮的宽度和高度问题
- 浏览器后退按钮禁用问题
- 剑道UI移动版 - 按钮点击时调用功能时出现问题
- 贝宝表单问题的单选按钮选择
- Javascript测验,有4个问题.单选按钮+继续按钮
- AJAX 问题:按钮不再响应
- AngularJS ng-grid分页问题-按钮没有被禁用