更改隐藏值并使用onclick为href提交表单

时间:2015-08-10 16:38:48

标签: javascript jquery html forms twitter-bootstrap

我目前有多个链接充当按钮,每个链接都有不同的表单,其中隐藏值存储ID。问题是我使用引导程序并且它弄乱了样式,并且它的唯一方法似乎是有一个隐藏值,一旦链接被点击,它将使用所选ID进行更新。 / p>

我目前有<a href="javascript:;" class="list-group-item list-group-item-default" onclick="parentNode.submit();">作为链接,我一直在寻找一种编辑值的方法。不幸的是,似乎每个人都认真地建议不要使用jQuery路线并使用jQuery,但我不太确定我是如何将这两者联系起来的。

我发现this link有一个很好的例子来说明如何更改jQuery以改变价值观,虽然我可以帮忙把它放在一起,因为我不确定如果可以使用jQuery代码提交表单,或者我应该创建一个单独的javascript函数来运行jQuery,然后提交表单。

如果javascript路线实际上没有任何问题,看起来this会完成这项工作,只想先检查一下。

3 个答案:

答案 0 :(得分:1)

如果您正在进行内联事件,请在一行中执行此操作

onclick="document.formName.elementName.value='foo';this.form.submit();"

答案 1 :(得分:1)

首先,jQuery实际上是Javascript,它只是一个扩展 - 如果你使用jQuery,你正在编写Javascript。 jQuery刚刚变得如此受欢迎,以至于有些人混淆了这一点。

您可以将要作为参数提交的表单传递给函数,如下所示:

function handleClickAction(formElement) {
    // change values
    formElement.submit();
}

使用您给定的标记,您可以这样称呼它:

<a href="javascript:;" class="list-group-item list-group-item-default" onclick="handleClickAction(parentNode);">

当然,如果您需要知道要更改的值和/或方式,可以向函数调用添加更多参数。

一般来说,您使用的解决方案不是很优雅而且是多余的,但如果您想使用内联代码,这可能是一种合适的方式:)

答案 2 :(得分:1)

Bootstrap的插件依赖于jQuery来运行。在这种情况下,当您将jQuery添加到引导程序设计时,您将看到更多功能(不仅仅是CSS样式)。既然如此,这是一个jQuery版本,可以满足您的要求:

注意:修改后回答评论中的后续问题。现在使用单击的元素的索引而不是id,这是原始帖子请求的内容,因为没有为链接分配id属性。

jQuery(function($) {
    $('#form_of_forms a.list-group-item').click(function(e) {
        e.preventDefault();
        $('#dynamic_form_id').val($(this).index()+1);
        $('#form_of_forms').submit();
    });
});

此外,将href="javascript:;"替换为href="#"并完全删除每个链接的onclick="..."属性。