提交带有链接的表单

时间:2013-11-14 09:22:59

标签: javascript html forms

我有以下表单结构

<form action="{Basket-Addproduct}" method="post" id="items-form">
    <button class="button-text button-gray-custom" type="submit" value="Submit" name="{dynamically generated name}"><span>Submit</span></button>
</form>

这里&#34;动态生成名称&#34;是关键字段,它告诉要提交哪个元素或产品.. 我希望它将其转换为链接, 我试过了

<a href="#" onclick="document.getElementById('items-form').submit()" name="{dynamically generated name}">Add This </a>

它已提交但无法添加产品... 它还希望传递name参数,以便知道要添加哪个产品...... 卡住....:( 任何解决方案都赞赏......

3 个答案:

答案 0 :(得分:2)

你应该<input type="submit"

无需执行JavaScript。

只需删除JS,然后根据需要添加<input type="submit"个按钮。 GET / POST应该具有您要查找的键/值。

E.g。

<input type="submit" name="item1" value="submit" />

当您点击它时,收件人会收到(抱歉PHP在这里使用):

$_GET['item1'] = submit

和其他提交没有价值。

答案 1 :(得分:0)

您可以使用jQuery干净利落地完成此任务。

所以,这是你的链接:

<a id="form-submit-btn" href="#" name="{dynamically generated name}">Add This</a>

你的表格:

<form action="{Basket-Addproduct}" method="post" id="items-form">
    <!-- form contents -->
</form>

现在编写一个JavaScript,通过点击按钮提交表单数据:

$('#form-submit-btn').click(function(e) {
  e.preventDefault();
  var $form = $('#items-form');
  $.post($form.attr('action'), $form.serialize(), function(data){
    // do something with the data
  });
});

答案 2 :(得分:0)

您的代码应该可以运行,我已经为您创建了一个测试示例,这里是:http://jsfiddle.net/afzaal_ahmad_zeeshan/yFWzE/

<form id="form">
  <input type="text" name="something" id="something" />
</form>
<a href="#" onclick="document.getElementById('form').submit();">Submit</a>

使用此功能,您将使用其ID提交表单。其他用户告诉你使用jQuery,我恐怕你不想这样做。在jQuery中你使用.preventDefault但是如果你想坚持使用简单的JS,那么你将使用href="#"来自动阻止任何锚标记的执行。

可以检查请求的结果,遗憾的是这是一个错误。但它确保请求已发送到服务器。

然后,您可以通过将一些if else块作为

来测试方法和其他类型的执行
if(condition == true) {
  // if post
} else {
  // if get
}

参数可能在服务器端处理不当,因为提交表单时需要从QueryString中取出数据(请求是GET)。所以,你需要检查一下,或者如果那不是问题,那么请确保你正确地指向该元素。否则,如果没有这样的元素,则不会发送任何内容。

我不确定,您使用的是哪种语言,但这是ASP.NET的代码

var value = Request.QueryString["something"];

上面已经存在PHP版本。这一切都取决于您随请求发送的参数。您更有可能将代码转换为函数。如

<a href="#" onclick="submit()">Submit</a>

功能

function submit() {
  // create variable
  var value = document.getElementById("something").value;\
  // now submit the form and all that other bla bla, which 
  // you want to be process, 
}

如果您发现这个很棘手,请使用jQuery作为

var values = $('form').serialize();

很容易。这将创建表单的字符串,并将其与请求一起发送。