Javascript 提交前如何更改隐藏输入字段的值
我有一个Feedburner订阅表单,有两个按钮,一个用于每日新闻,一个用于每周新闻。问题是如何在提交之前更改名为“uri”的隐藏输入字段的值?我的解决方案不起作用 这就是我尝试使用的:Javascript 提交前如何更改隐藏输入字段的值,javascript,jquery,html,forms,Javascript,Jquery,Html,Forms,我有一个Feedburner订阅表单,有两个按钮,一个用于每日新闻,一个用于每周新闻。问题是如何在提交之前更改名为“uri”的隐藏输入字段的值?我的解决方案不起作用 这就是我尝试使用的: <form id="feedburner" action="https://feedburner.google.com/fb/a/mailverify" method="post" target="popupwindow"> <p> <input a
<form id="feedburner" action="https://feedburner.google.com/fb/a/mailverify"
method="post" target="popupwindow">
<p>
<input autocomplete="off" value="Enter your email…"
onblur="if (this.value == '') {this.value = 'Enter your email…';}"
onfocus="if (this.value == 'Enter your email…') {this.value = '';}"
type="text" name="email"/>
<input type="hidden" name="uri"/>
<input type="hidden" name="loc" value="en_US"/>
</p>
<input type="submit" value="Daily" onsubmit="document.getElementsByName('uri').value = 'androidinfodaily'; window.open('https://feedburner.google.com/fb/a/mailverify?uri=androidinfodaily', 'popupwindow'); return true" checked>
<input type="submit" value="Weekly" onsubmit="document.getElementsByName('uri').value = 'androidinfoweekly'; window.open('https://feedburner.google.com/fb/a/mailverify?uri=androidinfoweekly', 'popupwindow'); return true">
</form>
已解决 我已经修复了我的代码,现在它可以工作了。这是最后一个变体:
<form id="feedburner" action="https://feedburner.google.com/fb/a/mailverify"
method="post" target="popupwindow">
<p>
<input autocomplete="off" value="Enter your email…"
onblur="if (this.value == '') {this.value = 'Enter your email…';}"
onfocus="if (this.value == 'Enter your email…') {this.value = '';}"
type="text" name="email"/>
<input type="hidden" name="uri" />
<input type="hidden" name="loc" value="en_US"/>
</p>
<input type="submit" value="Daily" onclick="document.getElementsByName('uri')[0].value = 'androidinfodaily'; window.open('https://feedburner.google.com/fb/a/mailverify?uri=androidinfodaily', 'popupwindow'); return true">
<input type="submit" value="Weekly" onclick="document.getElementsByName('uri')[0].value = 'androidinfoweekly'; window.open('https://feedburner.google.com/fb/a/mailverify?uri=androidinfoweekly', 'popupwindow'); return true">
</form>
在表单元素上触发,而不是在提交按钮上触发,因此请使用处理程序
请注意,submit仅在表单元素上触发,而不是按钮或按钮
提交输入。(提交的是表格,而不是按钮。)
您可以单击按钮的事件处理程序,并将按钮类型更改为
type=“button”
,这样它就不会直接提交表单。在内部,单击处理程序将balue分配给uri
输入,然后提交表单
HTML:
不要忘记第一个元素的
[0]
:
document.getElementsByName('uri')[0].value = 'androidinfodaily';
它也应该是
document.getElementsByName('uri')[0]。value
asgetElementsByName
返回一个集合
<form id="feedburner" action="https://feedburner.google.com/fb/a/mailverify" method="post" target="popupwindow">
<p>
<input autocomplete="off" value="Enter your email…" onblur="if (this.value == '') {this.value = 'Enter your email…';}" onfocus="if (this.value == 'Enter your email…') {this.value = '';}" type="text" name="email" />
<input type="hidden" name="uri" />
<input type="hidden" name="loc" value="en_US" />
</p>
<input type="submit" value="Daily" onclick="return beforeSubmit('androidinfodaily')" checked />
<input type="submit" value="Weekly" onclick="return beforeSubmit('androidinfoweekly')" />
</form>
function beforeSubmit(type) {
document.getElementsByName('uri')[0].value = type;
window.open('https://feedburner.google.com/fb/a/mailverify?uri=' + type, 'popupwindow');
return true
}
<form id="feedburner" action="https://feedburner.google.com/fb/a/mailverify"
method="post" target="popupwindow">
<p>
<input autocomplete="off" value="Enter your email…"
onblur="if (this.value == '') {this.value = 'Enter your email…';}"
onfocus="if (this.value == 'Enter your email…') {this.value = '';}"
type="text" name="email"/>
<input type="hidden" name="uri"/>
<input type="hidden" name="loc" value="en_US"/>
</p>
<input type="button" value="Daily" id="daily">
<input type="button" value="Weekly" id="weekly">
</form>
$(function(){
$('#daily').click(function(){
$('input[name="uri"]').val('androidinfodaily');
window.open('https://feedburner.google.com/fb/a/mailverify?uri=androidinfodaily', 'popupwindow');
//submit form
$('#feedburner').submit();
});
$('#weekly').click(function(){
$('input[name="uri"]').val('androidinfodaily');
window.open('https://feedburner.google.com/fb/a/mailverify?uri=androidinfoweekly', 'popupwindow');
//submit form
$('#feedburner').submit();
});
});
document.getElementsByName('uri')[0].value = 'androidinfodaily';