表单操作 - 当调用HREF时

时间:2012-05-09 01:59:00

标签: html asp-classic

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

请在此处考虑以下代码,如果有的话,请忽略语法。

<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方法吗?

2 个答案:

答案 0 :(得分: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以及浏览器处理事件的方式。

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

答案 1 :(得分:0)

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

您无法使用POST数据执行此操作。