href =“javascript:...”调用的javascript对象对象

时间:2013-11-17 16:41:46

标签: javascript object onclick href

我有一个简单的脚本无法正常工作或按预期工作。

<script>
function modify_val(target, valeur)
{
    $(target).val(valeur)
}
</script>


<a href="javascript:modify_val('#type1','$row->movie2');">$row->movie2 ($row->counter relations)</a>

javascript工作正常,因为目标输入值被修改但页面在点击后被“重定向”,页面包含:

[object Object]

为什么有印刷品?我不明白...... OnClick方法表现相同。 href或OnClick =“javascript:$('#type1')。val('$ row-&gt; movie2');”行为也一样。

你有什么想法吗?

PS:页面处于https模式。

3 个答案:

答案 0 :(得分:1)

<a href=\"javascript:$('#type1').val('$row->movie2'); void(0);\"> 

有效...猜猜是伴侣建议返回是强制性的

答案 1 :(得分:1)

事件处理程序的返回值确定是否也应该发生默认的浏览器行为。

<script>
function modify_val(target, valeur)
{
    $(target).val(valeur);
    return false;
}
</script>

将您的HTML更改为。我建议你使用onClick属性

<a href="#" onClick="return modify_val('#type1','$row->movie2');">$row->movie2 ($row->counter relations)</a>

Demo

答案 2 :(得分:0)

您可能需要通过传递事件对象并调用preventDefault()或从内联事件处理程序返回false来停止链接的默认操作。

function modify_val(target, valeur) {
    $(target).val(valeur)
    return false;
}

有关从内联事件处理程序返回false的信息,请参阅此帖子:What's the effect of adding 'return false' to a click event listener?


对于最干净的代码,我建议不要使用内联事件处理程序,只需使用jQuery(您似乎已经可用)来安装click事件处理程序并使代码和HTML更加分离(通常被认为是一种好习惯)。 jQuery还允许您从事件处理程序返回false以防止默认行为。

有关保持HTML和Javascript分开的详细信息,请参阅Unobtrusive Javascript上的这篇文章。