Javascript提交不发送修改后的值

时间:2013-12-23 16:24:08

标签: javascript jquery

我正在尝试创建一个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();
}

3 个答案:

答案 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;