【问题标题】:The If statement is being ignored in my javascriptIf 语句在我的 javascript 中被忽略
【发布时间】:2015-05-30 17:06:58
【问题描述】:
<!DOCTYPE html>
<html>

<form action="demo_form_method_post.asp" method="POST" target="_blank">
  First name: <input type="text" name="fname"><br>
  Last name: <input type="text" name="lname"><br>
  <input type="submit" value="Submit">
</form>

<script language="javascript" type="text/javascript">

if (method="POST") {
  alert("YES");
}

</script>
</body>
</html>

好的,所以我把上面的 method="POST" 放在上面来做声明。 然后在 If 语句中,我输入if("method = POST") 然后会有一个警告说是。 但是,如果我输入 POST 或 GET,我仍然会收到警报。 我尝试了双 == 和三重 === 但我根本没有收到警报?我在这些脚本中的唯一目标是从 method = "post" 获得响应

【问题讨论】:

  • 您可能想多了解一下 JavaScript。

标签: javascript html


【解决方案1】:

您不能只引用method 并让浏览器知道您在说什么。如果要检查表单的方法,请尝试使用document.forms

在这种情况下,由于您只有一个表格,您可以这样写:

if (document.forms[0].method == "POST") {
    alert("YES");
 }

【讨论】:

  • = 换成== 也很重要。
【解决方案2】:

POST 数据仅在服务器端可用。 See this answer。 如果您只是想查看表单何时提交并且有 method=post,您可以附加到 submit 事件,然后检查 method 属性。

Try this JSFIDDLE

<form method="POST" id="myform">
<button type="submit">Submit</button>
</form>

<script type="text/javascript">
    $( "#myform" ).submit(function( event ) {
        alert("The form is being submitted using method=" + this.method);
   });
</script>

【讨论】:

  • 使用 this.method 而不是 jQuery 更慢、更丑陋的 $(this).attr('method')
  • 虽然第一句话是“正确的”,但这并没有解决 OP 的代码(或它工作失败)。
【解决方案3】:

你也可以像这样查看方法帖

<form id="myForm" action="demo_form_method_post.asp" method="POST" target="_blank">
  First name: <input type="text" name="fname"><br>
  Last name: <input type="text" name="lname"><br>
  <input type="submit" value="Submit">
</form>

<script>
  if(document.getElementById("myForm").method == "post") {
    alert("YES");
  }
</script>

FIDDLE

或者使用jquery

if($("#myForm").attr("method") == 'POST'){
    alert("YES");
}

【讨论】:

    猜你喜欢
    • 2014-03-04
    • 2018-03-26
    • 2015-08-13
    • 1970-01-01
    • 1970-01-01
    • 2020-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多