基于单击的按钮填充字段值
populating a field value based on the button clicked
我有一个带有隐藏字段和两个提交按钮的html表单。根据点击的按钮(试用或购买),我需要设置促销代码字段(用"试用"作为试用按钮的促销代码,用"购买"作为购买按钮的促销码。
我不知道我怎么能读懂java脚本中点击的按钮。我已经有了一个java脚本,它在点击提交时将电子邮件ID复制到另一个字段中。我想将java脚本与现有脚本集成。
HTML代码:
<form>Email:
<input type="text" name="email">
<br>
</label><input type ="hidden" name="retype-email">
<br>
<input type="hidden" name="PromoCode" value="" method="post">
<input class="Orange_button" type="submit" value="Start my free trial">
<input class="green_button" type="submit" value="Buy it now">
</form>
JS Fiddle:http://jsfiddle.net/x1bdgvyt/3/
看起来最好的解决方案是通过订阅他们的"点击"事件来手动跟踪点击了哪个按钮。
此处的工作示例(jsFiddle)
HTML
<form>Email:
<input type="text" name="email">
<br>
</label><input type ="hidden" name="retype-email">
<br>
<input id="promo-code" type="hidden" name="PromoCode" value="" method="post">
<input class="Orange_button" type="submit" value="Start my free trial" data-code="trial"/>
<input class="green_button" type="submit" value="Buy it now" data-code="buy"/>
</form>
JavaScript
$('form').on('submit', function(e){
$('[name="retype-email"]').val($('[name="email"]').val());
var value = $("input[type=submit][clicked=true]").data("code");
$("#promo-code").val(value);
alert(value);
e.preventDefault()
});
$("form input[type=submit]").click(function() {
$("input[type=submit]", $(this).parents("form")).removeAttr("clicked");
$(this).attr("clicked", "true");
});
请注意,我为提交按钮添加了一个数据属性,这样我们就可以存储应该添加的代码。
来源:jQuery:如何获取表单提交时点击的按钮?
首先,在输入中添加"数据类型"(或任何名称,最重要的是前缀data-
):
HTML
<input data-type="trial" class="Orange_button" type="submit" value="Start my free trial">
<input data-type="buy" class="green_button" type="submit" value="Buy it now">
然后,稍微更改一下javascript,以获取data-type
值并用它填充字段:
Javascript
$('[type="submit"]').on('click', function(e) {
// populate your duplicated 'email' field
$('[name="retype-email"]').val($('[name="email"]').val());
// populate your 'code' field : grab the data-type attribute added in your HTML
$('[name="PromoCode"]').val($(this).data('type'));
// finally, submit the form
$('form').submit();
});
快速警告:您应该考虑使用ID或类,而不是使用像[attr]
这样的宽选择器,如果您的页面中有多个表单(无论如何,这是一种更好的做法),则可能会出现问题。
这是我的解决方案:
$('#usuario_form').submit(function(e){
console.log($('#'+e.originalEvent.submitter.id));
e.preventDefault();
});
您可以访问OriginalEvent Submitter Id,以识别点击的按钮
相关文章:
- 点击填充输入的按钮&提交
- JavaScript:如何用变量填充单选按钮值和标签
- 可填充pdf绿色或红色标志按钮
- 单击按钮时填充javascript变量
- 如何用HTML中的JSON外部文件填充下拉按钮
- 如果在 HTML/JavaScript 中选中了复选框,则填充单选按钮
- 点击按钮后在css弹出窗口中填充valus
- 在引导模式中,点击相应的datatables行中的按钮,填充数据
- 如何在Mobile View中获得一个按钮来填充页脚的全宽
- 使用表单按钮填充文本输入
- 如何使用javascript用按钮填充表单列表
- 根据所选单选按钮填充文本框
- 如何使用按钮填充数据而不进行回发
- 如何根据选择的单选按钮填充文本框
- 用单击的按钮填充文本区域
- 基于单击的按钮填充字段值
- 用HTML和js中的按钮填充图像或矢量路径
- 为什么我的提交按钮填充
- 如何在Wordpress中让一个按钮填充Mailchimp弹出表单的模式
- 在GAS中单击按钮填充输入框