Laravel中如何向onclick函数传递值?含双值传递代码求助
在Laravel中给onclick函数传递值的解决方案
嘿,我来帮你搞定Laravel里给onclick事件传递值的问题,分两种情况给你讲清楚:
问题1:传递单个值
在Laravel Blade模板里给onclick传单个值,核心是根据值的类型处理好引号:
- 如果是数字、布尔值这类原始类型,可以直接输出变量:
<!-- 传递数字ID --> <a onclick="openModal({{ $comment->id }})" role="button">Open</a> <!-- 传递布尔值 --> <a onclick="toggleStatus({{ $isActive ? 'true' : 'false' }})" role="button">Toggle</a> - 如果是字符串(比如选择器、文本内容),必须用单引号或双引号把值包起来,避免JS语法错误:
<!-- 传递字符串选择器 --> <a onclick="showElement('#collapseBox{{ $comment->id }}')" role="button">Show</a>
问题2:传递两个(或多个)值
传递多个值很简单,只需要在函数参数里用逗号分隔每个值,同样注意每个值的类型处理:
<!-- 同时传递选择器和登录状态两个值 --> <a onclick="loginmodal('#collapseBox{{ $comment->id }}', {{ Auth::check() ? 'true' : 'false' }})" role="button">Reply</a>
修正你的代码示例
你提供的代码有两个小问题:
- 字符串类型的选择器没有加引号,会导致JS解析错误
- 登录状态的判断建议用
Auth::check()(专门判断用户是否登录),比直接判断Auth::user()更直观
修正后的代码如下:
<a id="reply" onclick="loginmodal('#collapseBox{{ $comment->id }}', {{ Auth::check() ? true : false }})" role="button">Reply</a>
或者用单引号包裹onclick属性,内部用双引号也可以,只要保持引号嵌套一致就行:
<a id="reply" onclick='loginmodal("#collapseBox{{ $comment->id }}", {{ Auth::check() ? "true" : "false" }})' role="button">Reply</a>
内容的提问来源于stack exchange,提问作者Bruce
相关产品推荐
相关产品推荐

