【问题标题】:Script fails after page refresh页面刷新后脚本失败
【发布时间】:2013-02-24 13:54:19
【问题描述】:

在表单上有一个刷新按钮(使用 jquery mobile)。按下该按钮后,页面会刷新,但脚本(在页面上)无法运行(在操作单击提交时)。这是页面的外观:

@using (Html.BeginForm())
{
    <input type="submit" id="refresh" name="actionType" value="Refresh" />
    <input type="submit" id="submit" name="actionType" value="Submit" />
}

@Scripts.Render("~/bundles/jquery")    

<script type="text/javascript">
   $('#submit').click(function () {
     alert('Here');
   });
</script>

刷新实现为:

    [HttpPost]
    public ActionResult Index(string actionType)
    {
        if (actionType == "Refresh")
        {
            return RedirectToAction("Index");
        }
        ...
    }

提前感谢您的帮助!

【问题讨论】:

    标签: jquery asp.net-mvc jquery-mobile


    【解决方案1】:

    我不知道 jQuery 移动页面刷新会如何影响您的脚本。也许它对您的提交 ID 有什么作用......

    但您可以尝试使用不同的选择器:例如订阅类型为 submit 的 input 元素:

    <script type="text/javascript">
       $('input[type="submit"]').click(function () {
         alert('Here');
       });
    </script>
    

    【讨论】:

    • 它有效,谢谢!但是为什么选择“#submit”不刷新就可以工作?
    • 老实说我不知道​​...您提到您使用 jQuery mobile,所以我猜它与 jQuery mobile 有关,尽管您的示例代码不包含任何与 jQuery mobile 相关的部分。
    【解决方案2】:

    总是尝试在 document.ready() 中做任何你想做的事情:

    $(document).ready(function() {
        $('#submit').click(function () {
         alert('Here');
       });
    });
    

    【讨论】:

      【解决方案3】:

      我建议您订阅表单的.submit() 事件,而不是提交按钮的.click() 事件:

      <script type="text/javascript">
         $('form').submit(function () {
           alert('Here');
         });
      </script>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-01-26
        • 2016-11-02
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多