Javascript函数不直观

时间:2017-02-20 10:06:38

标签: javascript jquery html

我的Javascript函数没有按照我期望的方式运行。

function submitDetailsForm() {
  if (this.Attr("value") == "Add") {
    alert("Add");
  }
  alert("Not");
}
<button type="button" name="submit" id="remove" value="Remove" onclick="submitDetailsForm()">Remove</button>
<button type="button" name="submit" id="add" value="Add" onclick="submitDetailsForm()">Add</button>
<button type="button" name="submit" id="edit" value="Edit" onclick="submitDetailsForm()">Edit</button>

如果我运行此页面(代码更多,但与问题无关),那么我使用添加按钮,“添加”警报不会发生,但“不”警报也没有。我不打算对添加警报感到困扰,因为它可能只是语法失败,但无论如何,如果运行该函数,肯定会触发not alert。我确定该函数正在运行,因为如果我将not alert移动到if语句之上,它将运行。 任何帮助都会得到很多赞赏。

[解决] 我通过使用将对象传递给函数的想法解决了这个问题。我也忘了实际上声明我在脚本标签中使用了JQuery。 已解决的代码:

<button type="button" name="submit" id="remove" value="Remove" onclick="submitDetailsForm(this)">Remove</button>
    <button type="button" name="submit"  id="add" value="Add" onclick="submitDetailsForm(this)">Add</button>
    <button type="button" name="submit"  id="edit" value="Edit" onclick="submitDetailsForm(this)">Edit</button>

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <script>
        function submitDetailsForm(obj) {


            if ($(obj).attr("value") == "Add") {
                alert("Add");
            } else {
                alert("Not");
            }


        }
     </script>

*

1 个答案:

答案 0 :(得分:0)

在函数中传递此对象

<button type="button" name="submit" id="remove" value="Remove" onclick="submitDetailsForm(this)">Remove</button>
<button type="button" name="submit"  id="add" value="Add" onclick="submitDetailsForm(this)">Add</button>
<button type="button" name="submit"  id="edit" value="Edit" onclick="submitDetailsForm(this)">Edit</button>


<script>
    function submitDetailsForm(obj) {


        if (obj.value == "Add") {
            alert("Add");
        } else {
            alert("Not");
        }


    }
 </script>