在js提交后检查按钮是否被按下

时间:2015-08-10 10:47:15

标签: javascript php

我在尝试使用javascript提交表单后检查是否已按下表单类型按钮:

<script>
function DeleteIt(string){
    var pattern = string.indexOf('_');
    var prof_nr = string.substr(pattern+1);
    var delete = confirm("Want to delete it?");

    if( delete == true ){
        document.forms['form'].submit();
    }else{
        alert('Cancel');
    }
}
</script>

<form method="POST" name="form">
<input type="button" name="delete" value="Delete" id="prof_'.$row['code'].'" onclick="DeleteIt(this.id);">
</form>

if(isset($_POST['delete'])){
  echo 'Pressed';
}

但它并没有遇到这种情况,尽管它已被按下了。 我不能使用提交类型,因为我已经在表单中有一个用于搜索字段。无论何时我键入内容并按Enter键,它会触发该功能,这就是我使用按钮的原因

2 个答案:

答案 0 :(得分:2)

您在代码中使用了很多语言关键字作为变量名称,例如deletestring

  

您不能使用编程语言的保留字作为您的   变量名称。

这是工作代码 -

<script type="text/javascript">
function DeleteIt(string1){
    var pattern = string1.indexOf('_');
    var prof_nr = string1.substr(pattern+1);
    var delete1 = confirm("Want to delete it?");

    if( delete1 == true ){
        document.forms['form'].submit();
    }else{
        alert('Cancel');
    }
}
</script>

<form method="POST" name="form">
<button name="delete" id="prof_'.$row['code'].'" onclick="DeleteIt(this.id);">delete</button>
</form>

<?php
if(isset($_POST['delete'])){
  echo 'Pressed';
}

答案 1 :(得分:0)

我猜一个用于提交表单的按钮不会提交自己的值。

由于您不希望通过按Enter键提交表单,我的想法是添加一个隐藏字段,告诉您该怎么做。以下代码添加了一个名为 specialAction 的隐藏字段,通常设置为 save 。但是,按下删除按钮时,其值将更改为删除。在PHP中,您必须检查字段的值:

<!DOCTYPE html>
<html>
    <head>
        <title>Title</title>
    </head>
    <body>
        <script type="text/javascript">
            function DeleteIt(id){
                var pattern = id.indexOf('_');
                var prof_nr = id.substr(pattern+1);
                var deleteVar = confirm("Want to delete it?");

                if( deleteVar == true ){
                    document.forms['form']['specialAction'].value = "delete";
                    document.forms['form'].submit();
                }else{
                    alert('Cancel');
                }

                string 
            }
    </script>
    <form method="POST" name="form">
        <input type="hidden" id="specialAction" name="specialAction" value="save">
        <input type="text" name="testPurpose" value="Hit enter after focusing">
        <input type="button" value="Delete" name="delete" id="prof_test" onclick="DeleteIt(this.id);">
    </form>
    <?php 
        if(isset($_POST['specialAction'])) echo $_POST['specialAction'];
    ?>
    </body>
</html>

附注:不要将delete用作变量名,因为它已被用作运算符。此外,您应该告诉浏览器使用<script type="text/javascript">来解释JavaScript,而不仅仅是<script>