【问题标题】:Explicitly define form action显式定义表单操作
【发布时间】:2021-09-20 17:18:01
【问题描述】:

我有一个使用 html、JavaScript、CSS 和 JQuery 开发的网站模板。 有一个文件 (contact.js) 描述了表单的 ajax 代码,如下所示:

$(function() {    
submitSuccess: function($form, event) {
            event.preventDefault(); 
            // get values from FORM
            var name = $("input#name").val();
            var email = $("input#email").val();
            $.ajax({
                url: "../submit.php",
                type: "POST",
                data: {
                    name: name,
                    phone: email
                       }, 
             success: function() {),
             error: function() {},
             })
        },
        });

现在,问题是当我创建一个自定义表单并希望它重定向到我自己的文件(不是“submit.php”)时,它没有选择指定的 url。它会自动获取 ajax url。 这是我的示例代码

<form method="POST" action="postcomment.php?parent=<?php echo $blogId ?>" >

有没有办法阻止这种情况?

【问题讨论】:

    标签: javascript html ajax forms


    【解决方案1】:

    您可以像检索nameemail 一样获得form 操作属性。

    如果action属性为空,使用../submit.php

    $(function() {    
    submitSuccess: function($form, event) {
      event.preventDefault(); 
      // get values from FORM
      var name = $("input#name").val();
      var email = $("input#email").val();
      
      var action = $("form").attr("action");
      var url = (action == "") ? "../submit.php" : action;
      
      $.ajax({
        url: url,  // Use the url variable here
        type: "POST",
        data: {
          name: name,
          phone: email
        }, 
        success: function() {),
          error: function() {},
        })
      },
    });
    

    【讨论】:

    • 谢谢。所以,如果我想要一个表格发布到例如post.php 和,我所要做的就是像这样编辑代码: var url = (action == "") ? “../post.php.php”:动作;
    • 如果要使用特定的 url,请使用表单的 action 属性:<form action="../somepage.php">。如果您未指定操作,例如<form>,则将使用“默认”网址../submit.php
    猜你喜欢
    • 2014-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-20
    • 1970-01-01
    • 1970-01-01
    • 2014-07-12
    相关资源
    最近更新 更多