文本链接填充表单字段
Text link fills in form fields
我想学习如何创建一个文本链接,当点击它时,它会填充我上面表单上的某些信息。
因此,在上下文中,我有一个带有字段的捐赠表格——金额/国家/项目。下面我有几个链接,标题是"我们最紧急的呼吁"。这可能有点像非洲的住房——100英镑。
点击此链接时,它会在表格中填写信息,因此金额为100英镑,国家为非洲,项目为住房。该表格不会提交,它只会被填写好,用户可以更改他们想要的任何内容。
我四处寻找,但找不到合适的答案来帮助我。有人能帮忙吗?
就基本情况而言,我的表格可以是这样的:
<form target="paypal" id="general-donate" class="form-horizontal" action="https://www.paypal.com/cgi-bin/webscr" method="post" data-validate="parsley" >
<div class="control-group">
<label for="amount" class="control-label">
Donation Amount (£)
</label>
<div class="controls">
<input type="text" name="amount" data-min="5" min="5" value="10.00" required>
</div>
</div>
<div class="control-group">
<label for="os0" class="control-label">
Country
</label>
<div class="controls">
<input type="hidden" name="on0" value="Country">
<select name="os0">
<option value="Where Needed Most">Where Needed Most </option>
<option value="Africa">Africa </option>
<option value="Bangladesh">Bangladesh </option>
<option value="Palestine/Gaza">Palestine/Gaza </option>
<option value="Pakistan">Pakistan </option>
<option value="UK">UK </option>
<option value="Burma">Burma </option>
<option value="Syria">Syria </option>
<option value="Tunisia">Tunisia </option>
<option value="Sri Lanka">Sri Lanka </option>
<option value="Kashmir">Kashmir </option>
</select>
</div>
</div>
<div class="control-group">
<label for="os1" class="control-label">
Projects
</label>
<div class="controls">
<input type="hidden" name="on1" value="Projects">
<select name="os1">
<option value="Where Needed Most">Where Needed Most </option>
<option value="Food">Food </option>
<option value="Water">Water </option>
<option value="Medicine">Medicine </option>
<option value="Water Wells">Water Wells </option>
<option value="Hospitals">Hospitals </option>
<option value="Disabled Assistance">Disabled Assistance </option>
<option value="Eid Gift">Eid Gift </option>
<option value="Housing">Housing </option>
</select>
</div>
</div>
<div class="form-actions">
<button type="submit" id="buynow" class="btn btn-danger">
Donate via PayPal
</button>
</div>
</form>
我的链接只是下面的文本。点击后,相关信息就会填写在表格上。表格是基本的,有一个金额文本输入和两个下拉选项。
要用程序设置表单,只需设置相关输入的value
属性:
var amount = document.getElementsByName('amount')[0],
os0 = document.getElementsByName('os0')[0],
os1 = document.getElementsByName('os1')[0];
function setForm(amountValue, os0Value, os1Value) {
amount.value = amountValue;
os0.value = os0Value;
os1.value = os1Value;
}
var link = document.getElementById('set-form');
link.onclick = function (e) {
setForm(100, 'Africa', 'Housing');
};
在您的html:中
<a href="#" id='set-form'>click</a>
好的,可以用jquery完成:
创建以下javascript函数:
function fillFields(amount, country, project) {
$('input[name="amount"]').val(amount);
$('select[name="os0"]').val(country);
$('select[name="os1"]').val(project);
}
然后你的按钮的html应该是类似的东西
<button onclick="fillFields('100', 'Africa', 'housing')">Housing in Africa - £100</button>
"点击此链接时,它会在表格中填写信息,因此金额为100英镑,国家为非洲,项目为住房。表格不会提交,只会填写好,用户可以更改任何他们想要的内容。"
这应该有效:
<a class="click-me" href="javascript:;">Click Me</a>
<script>
// <![CDATA[
(function ($) {
$(function () {
$('body').delegate('.click-me', 'click', function () {
$('input[name="amount"]').val('100'); // Set amount to £100
$('select[name="os0"]').val('Africa'); // Set country to Africa
$('select[name="os1"]').val('Housing'); // Set needed most to Housing
});
});
})(jQuery);
// ]]>
</script>
这里有一个jsFiddle:http://jsfiddle.net/NzX8V/
这将是一种更灵活的方式:(jsFiddle:http://jsfiddle.net/RLtVR/)
<a class="click-me" rel="100,Africa,Housing" href="javascript:;">Click Me</a>
<script>
// <![CDATA[
(function ($) {
$(function () {
$('body').delegate('.click-me', 'click', function () {
var rel = $(this).attr('rel').split(','),
amount = rel[0], country = rel[1], needed = rel[2];
$('input[name="amount"]').val(amount); // Set amount
$('select[name="os0"]').val(country); // Set country
$('select[name="os1"]').val(needed); // Set needed most
});
});
})(jQuery);
// ]]>
</script>
如果你使用HTML5中的data-*属性而不是rel属性,你可以让它更容易维护和读取,但由于我不确定你的doctype,我想我会谨慎行事。例如,您可以将属性dataamount="100"datacountry="Africa"datarequired="Housing",然后使用jQuery的.attr()方法引用这些属性,而不是将它们逗号分隔并拆分。
- 通过单击动态加载的表中同一行的另一个字段来更新一行的字段
- 添加和删除隐藏字段数组中的值,而不提交表单
- 单击鼠标,用MySQL数据填充html表单输入字段
- 带有条件字段的PHP表单
- 防止在输入字段上单击事件
- 高级自定义字段按单选按钮值排序
- 使用JQuery启用输入字段的单选框
- SmartyStreets:使用条件字段调整表单中已验证勾号的位置
- 组合功能以使用 Jquery 在一组单选按钮中显示输入字段和单选按钮
- 使只读字段不可单击
- 使用 JavaScript 进行 HTML 字段表单验证
- JavaScript 在不输入输入字段/表单的情况下传递输入
- JQuery 在动态添加输入字段时单击浏览,而 ajax 不起作用
- 我可以让时间选择器在输入字段中单击时触发吗?
- 将隐藏字段表单值传递给控制器
- 隐藏小视口中的字段,单击按钮再次显示
- 我可以给html文本字段表单中的元素提供相同的名称和id吗
- 在新行上显示输入字段(基于单选)
- 在文本字段(表单)后插入节点
- 动态生成的名称字段的单选按钮组验证