【问题标题】:OnClick pass url parameterOnClick 传递 url 参数
【发布时间】:2013-11-17 02:10:56
【问题描述】:

这是我找了好几个小时后的第一个问题。

我有一个按钮:

<a class="btn" onclick="return filter('http://mysite/filter');">Filter</a>

调用这个小脚本:

<script language="javascript"> 

function filter(page)
{
    //alert('proceed filter!!');
    document.form.action = page;
    document.form.submit();
    return true;
}

</script>

改编自: http://www.codeproject.com/Articles/664/Specifying-multiple-actions-from-a-single-Form

这一切实际上都有效,但原帖是从 2000 年(13 岁)开始的

所以我想知道是否应该使用 jQuery 更新此代码。

我有一个带有 URI 的按钮,我知道要传递和提交什么。

我只是不知道如何将上面的 javascript 转换为 jQuery,如果有必要的话。

非常感谢任何建议。

【问题讨论】:

  • 为什么要使用jQuery?因为你被告知内联处理程序不好?如果是这样,jQuery 是一种无需担心浏览器差异的简单方法,Caleb 的答案是完美的。此外,您的脚本标记应为 type="text/javascript",不带 language 属性。
  • 所以你是在要求我们检查你的代码并为你把它变成jQuery?
  • 感谢您的 cmets 并指出改进和错误。

标签: javascript jquery parameters parameter-passing


【解决方案1】:

你可以这样做:

<a class="btn filter-btn" data-url="http://mysite/filter">Filter</a>

$('.filter-btn').on('click', function() {
  $('form').prop('action', $(this).attr('data-url')).submit(); // I recommend giving your form an ID or something instead of just matching on the form element.
});

使用这种方法,您可以拥有多个a.filter-btns,每个data-url 都有自己的data-url,并且处理它的代码位于一个地方,而不是许多不同的onclicks。

【讨论】:

  • 非常感谢迦勒!它工作完美。我确实遵循了您的建议,并在表单和按钮中添加了 ID。现在我可以在我的网站上使这个可重复使用。干杯
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-05
  • 2015-02-07
  • 1970-01-01
  • 2014-03-22
相关资源
最近更新 更多