Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用jQuery检查多个提交按钮时出现问题_Javascript_Jquery - Fatal编程技术网

Javascript 使用jQuery检查多个提交按钮时出现问题

Javascript 使用jQuery检查多个提交按钮时出现问题,javascript,jquery,Javascript,Jquery,我正在使用jQuery 1.7.2检查四个提交按钮中的哪一个被按下。如果单击了其中三个按钮中的任何一个,我想显示一个带有按钮值的警报框。以下是html代码: <body> <table> <tr> <td> <input type="submit" id="cancel" value="Cancel"> </td>

我正在使用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>

只有当我点击更新按钮时,警报才会触发。当我检查多个提交按钮时,这里的代码有什么问题?

您的if语句不正确:

if( $(this).val() == "Save" || "Find" || "Clear" )
虽然操作员通常被认为是这样工作的,但它不是这样工作的。如果要测试该值是否等于这些字符串之一,则可能应使用
$。inArray

if ( $.inArray( $(this).val(), [ "Save", "Find", "Clear" ] ) > -1 );
额外学分 作为一个额外的优点,
|
操作符计算两个表达式(一个在它的左边,一个在它的右边),如果两个表达式中的任何一个都是真的,则计算结果为
true

在尝试中,您希望查看该值是否等于这些字符串中的任何一个。如果要使用
|
,则必须创建多个比较:

var myVal = $(this).val();
if ( ( myVal == "Save" ) || ( myVal == "Find" ) || ( myVal == "Clear" ) )

如果满足任何条件,此条件将计算为
true
。您可以看到这将很快变得相当冗长。

您的if语句不正确:

if( $(this).val() == "Save" || "Find" || "Clear" )
虽然操作员通常被认为是这样工作的,但它不是这样工作的。如果要测试该值是否等于这些字符串之一,则可能应使用
$。inArray

if ( $.inArray( $(this).val(), [ "Save", "Find", "Clear" ] ) > -1 );
额外学分 作为一个额外的优点,
|
操作符计算两个表达式(一个在它的左边,一个在它的右边),如果两个表达式中的任何一个都是真的,则计算结果为
true

在尝试中,您希望查看该值是否等于这些字符串中的任何一个。如果要使用
|
,则必须创建多个比较:

var myVal = $(this).val();
if ( ( myVal == "Save" ) || ( myVal == "Find" ) || ( myVal == "Clear" ) )

如果满足任何条件,此条件将计算为
true
。您可以看到这将很快变得相当冗长。

冗长的代码工作正常。但伊纳雷没有。我会再试一次。@JamesDrinkard这是我这边的一个错误
$。inArray
返回在数组中找到字符串的位置的索引<代码>0是可能导致错误评估的潜在响应(数组中的第一项)。我已经更新了
$。inArray
评估工作。您是对的,它现在正在工作!这个星期五下午,我在工作中遇到了麻烦,我试图让它独立工作。谢谢你的帮助!冗长的代码起作用了。但伊纳雷没有。我会再试一次。@JamesDrinkard这是我这边的一个错误
$。inArray
返回在数组中找到字符串的位置的索引<代码>0是可能导致错误评估的潜在响应(数组中的第一项)。我已经更新了
$。inArray
评估工作。您是对的,它现在正在工作!这个星期五下午,我在工作中遇到了麻烦,我试图让它独立工作。谢谢你的帮助!