【问题标题】:How to call ONLY javascript function in html.actionlink如何在 html.actionlink 中仅调用 javascript 函数
【发布时间】:2014-10-27 01:35:07
【问题描述】:

我有java脚本函数

   function SetTextBoxValue(data) {
        $('#text_box').val($(this).val("myField"))

    };

是否有可能以及如何在剃刀视图中仅调用此函数,而不使用来自 @Html.ActionLink() 的控制器和操作名称?

为了扩展一个问题,我在同一个视图上有一个带有 4 个文本框的表格和一个表单。当用户单击该列中的链接时,我需要用表中特定列的值填充一个文本框。

【问题讨论】:

  • 脚本没有意义(函数上下文中的$(this) 是什么?)。显示 html 并指出您要执行的操作。
  • $(this) 是 @html.actionlink 定义为 " @Html.ActionLink(modelItem.myfield, "controller", "action" new { OnClick = "SetTextBoxValue()" })"跨度>
  • 如果只需要执行js代码,为什么还要使用Html.Actionlink

标签: javascript asp.net-mvc razor razorengine


【解决方案1】:

试试这个:

@Html.ActionLink("LinkText", "#", "", null, new { onclick="SetTextBoxValue('mydata')" });

希望这会有所帮助。

【讨论】:

  • 其实你得像 onclick="return SetTextBoxValue('mydate')" 那样做
【解决方案2】:

你需要两个步骤:

1 : 在你的 actionLink 中添加 onclick="return someJsFct"

@Html.ActionLink("click here", "", "", null, new { onclick="return SetTextBoxValue('data')" });

2: 您的 javascript 函数必须返回 false 以防止 actionLink 调用服务器

<script language="javascript">
    function SetTextBoxValue(data) {
        // some code

        return false;
    }
</script>

【讨论】:

    猜你喜欢
    • 2011-02-20
    • 2014-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-11
    • 2019-04-04
    • 2017-05-28
    • 2015-07-25
    相关资源
    最近更新 更多