我目前有多个链接充当按钮,每个链接都有不同的表单,其中隐藏值存储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会完成这项工作,只想先检查一下。
答案 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="..."
属性。