javascript 函数被调用两次

标签 javascript forms href function-call

我试图在单击链接时调用 JavaScript 函数。实际上我想使用 post 方法单击链接来提交表单,所以我尝试执行以下操作-

<a href="javascript:submitCategory(this)" >Handicrafts</a>

在 JavaScript 中

function submitCategory(varthis)
{   
    alert(varthis.value);
}

我有几个重要的问题: 1>当我点击链接时,函数submitCategory被调用两次。经过大量分析,发现我包含两个 js 文件,删除其中一个使该函数仅被调用一次。 意义 当我包含

<script type ="text/javascript" src="jquery.js"></script>
    <script type ="text/javascript" src="cWed.js"></script>

submitCategory 函数被调用两次

当我删除其中一个并包含时

<script type ="text/javascript" src="jquery.js"></script>

submitCategory 函数仅被调用一次。

为什么会这样?

2>alert(thisvar.value) 应该返回 Handicrafts,但它返回未定义。为什么会这样?

3> href="javascript:submitCategory(this)"的具体含义是什么?我在任何教程中都没有遇到过这个。在这里包含这个应该指的是元素“a”,对吗?

最佳答案

1。您不需要使用限定符“javascript:”
2. 当你在html中hook事件时,总是尝试像event_handler(event)那样做。注意:event是事件对象。而不是这里的一些随机变量。您可以在网络上的许多地方阅读有关它的更多信息。在您的情况下, varthis 是事件对象。要访问此元素,请使用 varthis.target ,然后要获取其内部 html,您可以使用 varthis.target.innerHTML
3. 调用函数时,您必须通过事件标记显式获取调用元素的 html 内容,或者仅使用 jquery。您不能以您认为现在传递的方式传递变量。
4.如果您实际上正在尝试提交表单,我建议在脚本而不是 HTML 中 Hook onSubmit 事件,并将自定义表单提交代码放在那里。如果您不需要在表单提交中执行任何自定义操作,只需将目标服务器函数的 url 放在表单的 action 属性中即可。

示例代码:

<form>
    <a href="#" id="submitCategoryLink">Submit Category</a>
</form>
<script type="text/javascript">
    $('#submitCategoryLink').on('click', function (e) {
        alert(e.target.innerHTML)
    });
</script>

关于javascript 函数被调用两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17476706/

相关文章:

javascript - 使用 jQuery 将轮播功能添加到选项卡

javascript - 在 promise 在其他代码位置解析后运行代码

javascript - 如何将表行序列化为json对象

html - 如何使用 A-HREF 定位图像

python - 不打印 xpath 的空结果

javascript - 从多选下拉列表中获取值

javascript - fancybox 防止在窗口外部关闭点击

javascript - 想要 PHP 和 JS 表单(空字段/密码匹配)验证吗?

javascript - 使用 ScrollTo jQuery 插件提交表单后滚动到错误和成功消息

PHP 从 <a> 标签中提取链接