3

我有一个关于表单操作的基本问题。

考虑下面的代码,如果有的话,请忽略语法。

<form action="demo_form.asp" method="get">
 <a href="test.asp">Code testing</a>
 First name: <input type="text" name="fname" /><br />
 Last name: <input type="text" name="lname" /><br />
 <button type="submit">Submit</button><br />
</form> 

demo_form.asp在表单提交时被调用,我可以在demo_form.asp中处理表单中的变量,如下所示,

request.GET('fname')

通过 HREF 调用 test.asp 时如何处理表单中的变量。我可以使用相同的 GET 或 POST 方法吗?

4

2 回答 2

1

通过超链接提交数据的唯一方法是通过 GET 请求。这当然会涉及表单中的所有字段,而不是作为查询参数添加到超链接。

您当然可以修改一个a元素,以便它使用 onclick 处理程序和 JavaScript 使用 DOM 方法从您的表单中获取数据,动态修改 href 属性,然后触发该特定锚标记的 click 事件。这也将是一个 GET 请求。

HTML:

<form action="test.asp" id="theForm">
     <a href="test.asp?" id="link">Code testing</a>
     First name: <input type="text" name="fname" /><br />
     Last name: <input type="text" name="lname" /><br />
</form>

jQuery:

$('#link').click(function() {
    var href = "";
    $('#theForm > input').each(function(event) {
        event.preventDefault();
        href = $('#link').attr("href") + "&" + 
            $(this).attr("name") + "=" + $(this).attr("value");
        $('#link').attr("href", href);
    });
    $(this).click();  // or window.location = $(this).attr("href");
});

我不确定这会给你带来什么价值,除了作为一个练习来了解更多关于 DOM 和浏览器处理事件的方式。

在不知道您要完成什么的情况下,很难知道为什么您不只是使用表单本身。

于 2012-05-09T02:04:04.803 回答
0

如果您test.asp通过链接(或您所说的 href)调用,则只能使用 GET 方法处理变量。因此,例如,如果您有 ,那么test.asp?fname=bob&lname=smith这些 GET 变量将在 test.asp 中可用

您不能对 POST 数据执行此操作。

于 2012-05-09T02:03:48.387 回答