我正在尝试创建一个javascript函数,根据您单击的按钮修改表单的隐藏值,然后通过post将其发送到处理它的页面。
我检查了该值是否被正确修改,但是当发送帖子时,会发送默认值。
任何帮助?
这里是js函数:
function citar(key)
{
document.getElementById('esta-cita').value=key;
document.getElementById('form-cita').submit();
}
编辑:我这样做了,现在可行了。的jQuery!
function citar(key)
{
$("#ncita").attr("value", key);
$('#form-cita').submit();
}
答案 0 :(得分:3)
这里的主要问题是你正在使用
document.getElementsByName
返回一个数组。因此密钥的实现无效。 如果您使用的是jQuery,可以使用
$('[name=esta-cita]').each(function() {
$(this).val(key); //this will insert key to all esta-cita named parameters, even if only 1
});
如果你只有1个这样的参数:
$('[name=esta-cita]').val(key);
});
我强烈建议您使用jQuery jQuery website
在javascript的情况下我会建议你使用
在'esta-cita'上的document.getElementById。
如果你想在javascript中插入所有元素的键我会建议一个非常有效的方法:
document.getElementsByName('esta-cita').forEach(function(entry) {
entry.value = key; //entry indicates a cell in the array
答案 1 :(得分:1)
试试,
document.getElementsByName('esta-cita')[0].value=key;
您可以访问长度属性document.getElementsByName('esta-cita').length
以了解匹配的元素数量
或者你可以尝试这个
function citar(key)
{
document.forms['form-cita'].esta-cita.value = key;
document.forms['form-cita'].submit();
}
HTML应该像
<form action="putActionHere" method="POST" enctype="multipart/form-data" id="form-cita">
<input type="hidden" name="esta-cita" id="esta-cita" value="yourval">
...
<input type="submit" value="Submit" onClick="citar('keystring');" />
</form>
答案 2 :(得分:1)
这将返回一个元素数组,因此您必须像普通数组一样遍历它。
function citar(key)
{
document.getElementsByName('esta-cita').value=key;
document.getElementById('form-cita').submit();
}
应该是:
function citar(key)
{
var derp = document.getElementsByName('esta-cita');
for (var i=0;i<derp.length;i++) {
derp[i].value = key;
}
document.getElementById('form-cita').submit();
}
如果您只是想要第一个
,则只需document.getElementsByName('esta-cita')[0].value=key;