如何使用 FormHelper 或其他方法呈现单击时运行 javascript 的图像链接?

Posted

技术标签:

【中文标题】如何使用 FormHelper 或其他方法呈现单击时运行 javascript 的图像链接?【英文标题】:How can I by using the FormHelper ,or some other method, render an image link that runs javascript when clicked? 【发布时间】:2010-05-10 22:52:30 【问题描述】:

背景:

我想渲染这个:

<a href="javascript:myfunction('Somevar')"><img src="some.png"   border="0" /></a>  

在 cakephp 应用程序中。注意:此链接根本与模型无关,它只是异地表单的一部分。

我不确定如何继续:我在 cakephp 网站上看到了this,但是 有了蛋糕上发生的所有事情,我不确定整个 javascript 调用业务。创建这样的东西的最佳方法是什么?

编辑:我正在使用 Cake 1.2。

【问题讨论】:

【参考方案1】:

将Javascript函数作为第二个参数传递给htmlHelper::link完全没有问题。这应该可以解决问题:

echo $html->link(
    $html->image('some.png'),
    "javascript:myfunction('Somevar')",
    array('escape'=>false)
);

这会调用HtmlHelper::link,传递一个图像(由HtmlHelper::image 生成)作为包裹&lt;a /&gt; 的HTML,将Javascript 函数作为链接的动作,并通知Cake 不要转义您传递的HTML。

更新: 这是 Cake 1.2 的 sn-p:

echo $html->link(
    $html->image('some.png'),
    "javascript:myfunction('Somevar')",
    null, null, false
);

HtmlHelper::link 的最后一个 false 参数指示 Cake 不要转义 HTML。

【讨论】:

我已经编辑了这个问题。我正在使用我应该指定的 cake 1.2。 我已经编辑了我的答案以提供 1.2 的代码 sn-p! HTH

以上是关于如何使用 FormHelper 或其他方法呈现单击时运行 javascript 的图像链接?的主要内容,如果未能解决你的问题,请参考以下文章

单击小部件时如何呈现祝酒词?

使用 MouseUp 和 MouseDown 事件或其他方式模拟单击的最佳方法是啥?

BooleanField 复选框无法通过使用 bootstrap 的crispy_forms 正确呈现

FormHelper::getSourceValue() 在 CakePHP4 中的验证错误时不返回实体

如何使用 AJAX 单击命令按钮在 JSF 中呈现数据表

单击一个时如何禁用其他星星上闪烁的颜色/动画?