Javascript提交未发送修改的值

Javascript提交未发送修改的值,javascript,jquery,Javascript,Jquery,我试图创建一个javascript函数,根据您单击的按钮修改表单的隐藏值,然后通过post将其发送到处理该表单的页面 我检查了是否正确修改了该值,但发送post时会发送默认值 有什么帮助吗 下面是js函数: function citar(key) { document.getElementById('esta-cita').value=key; document.getElementById('form-cita').submit(); } 编辑:我做了这个,现在它可以工作

我试图创建一个javascript函数,根据您单击的按钮修改表单的隐藏值,然后通过post将其发送到处理该表单的页面

我检查了是否正确修改了该值,但发送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();
}
试着

document.getElementsByName('esta-cita')[0].value=key;

您可以访问length属性
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>

...
试试

document.getElementsByName('esta-cita')[0].value=key;

您可以访问length属性
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>

...

这将返回一个元素数组,因此您必须像普通数组一样对其进行迭代

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();
}
功能指令转换器(键)
{
var derp=document.getElementsByName('esta-cita');

对于(var i=0;i这将返回一个元素数组,因此您必须像普通数组一样遍历它

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();
}
功能指令转换器(键)
{
var derp=document.getElementsByName('esta-cita');

对于(var i=0;i而言,这里的主要问题是您正在使用

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
});
如果您只有一个此类参数,那么:

 $('[name=esta-cita]').val(key);
    });
我强烈建议您使用jQuery

对于javascript,我建议您使用

“esta cita”上的document.getElementById

如果您想在javascript中插入所有元素的键,我建议使用一种非常有效的方法:

document.getElementsByName('esta-cita').forEach(function(entry) {
entry.value = key; //entry indicates a cell in the array

这里的主要问题是您正在使用

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
});
如果您只有一个此类参数,那么:

 $('[name=esta-cita]').val(key);
    });
我强烈建议您使用jQuery

对于javascript,我建议您使用

“esta cita”上的document.getElementById

如果您想在javascript中插入所有元素的键,我建议使用一种非常有效的方法:

document.getElementsByName('esta-cita').forEach(function(entry) {
entry.value = key; //entry indicates a cell in the array


getElementsByName
返回一个HTMLCollection。一段HTML可能会有帮助。
getElementsByName
返回多个元素,而不仅仅是一个。您需要设置所需元素的
值。
document.getElementsByName('esta-cita')[0]。value=key;
@DhavalMarthak:假设他想要第一个元素(这是一个很好的假设)。
getElementsByName
返回一个HTMLCollection。一段HTML可能会有所帮助。
getElementsByName
返回多个元素,而不仅仅是一个。您需要设置所需元素的
值。
document.getElementsByName('esta-cita')[0].value=key;
@DhavalMarthak:假设他想要第一个(这是一个很好的假设)。无论如何,当我使用document.write(document.getElementsByName('esta-cita').value)时,我理解这一点显示的结果是正确的,因此我正确地修改了值,只是发送的值是默认值,而不是修改后的值。jQuery是此类任务的开销。更不用说在question@RUJordan这就是为什么我包括了这两个答案,jQuery和Javascript使用更好的工具。我也尝试过使用jQuery,它也起了作用,然后看到了这个响应。谢谢,这是正确的答案!不管怎样,当我使用document.write(document.getElementsByName('esta-cita').value)时,我理解这一点显示的结果是正确的,因此我正确地修改了值,只是发送的值是默认值,而不是修改后的值。jQuery是此类任务的开销。更不用说在question@RUJordan这就是为什么我包括了这两个答案,jQuery和Javascript使用更好的工具。我也尝试过使用jQuery,它也起了作用,然后看到了这个响应。谢谢,这是正确的答案!发送值一直是默认值,而不是修改后的新值。请发布您的HTML。我不知道您是否在选择输入或锚定标记或其他内容。发送值一直是默认值,而不是修改后的新值e、 请发布你的HTML。我不知道你是否在选择输入或锚定标签或其他东西。