我的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>
*
答案 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>