gpt4 book ai didi

javascript - 使用 jQuery 检查多个提交按钮的问题

转载 作者:行者123 更新时间:2023-11-30 10:41:35 24 4
gpt4 key购买 nike

我正在尝试使用 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 block 会阻止这种情况发生?

如果我注释掉该行并改为使用此代码:

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。您可以看到这将如何很快变得相当冗长。

关于javascript - 使用 jQuery 检查多个提交按钮的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10771750/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com