【问题标题】:Script not working after pageload页面加载后脚本不起作用
【发布时间】:2013-05-30 19:15:44
【问题描述】:

我正在使用 javascript 来显示 sms_textbox 的剩余字符显示。仅允许 160 个字符。

   <script type="text/javascript">
            var characterLimit = 160;
            $(document).ready(function () {
                $("#lblremaingCharacters").html(characterLimit);
                $("#txtmessage").bind("keyup", function () {
                    var characterInserted = $(this).val().length;
                    if (characterInserted > characterLimit) {
                        $(this).val($(this).val().substr(0, characterLimit));
                    }
                    var characterRemaining = characterLimit - characterInserted;
                    $("#lblremaingCharacters").html(characterRemaining);
                });
            });
        </script>

但是这个脚本只在页面加载时运行良好,在其他 asp 按钮单击事件触发时不起作用。

【问题讨论】:

  • 您是否在代码中使用更新面板??
  • 将您的 characterLimit 变量保留在 ready 范围内。
  • 你有 fiddlejs 吗?但也许脚本被执行了很多次尝试在绑定之前取消绑定 $("#txtmessage").unbind('keyup').bind("keyup", function () {

标签: c# javascript jquery asp.net


【解决方案1】:

尝试在 document.ready 函数中替换 characterLimit

  $(document).ready(function () {
            var characterLimit = 160;
            $("#lblremaingCharacters").html(characterLimit);

现在 characterLimit 将像 全局值 一样适用于您的所有事件。

现在你的脚本应该是

<script type="text/javascript">
        $(document).ready(function () {
            var characterLimit = 160;
            $("#lblremaingCharacters").html(characterLimit);
            $("#txtmessage").bind("keyup", function () {
                var characterInserted = $(this).val().length;
                if (characterInserted > characterLimit) {
                    $(this).val($(this).val().substr(0, characterLimit));
                }
                var characterRemaining = characterLimit - characterInserted;
                $("#lblremaingCharacters").html(characterRemaining);
            });
        });
    </script>

【讨论】:

  • 这个脚本也会出现同样的问题。
  • 上键尝试提醒charcterLimit值并检查
  • @ Gautam3164 我试图提醒 charcterLimit。在警报消息中是正确的。但是我为它展示的标签在其他任何点击事件中都变得不可见。我通过 javascript 让它可见,但仍然无法正常工作。
  • 那你需要绑定其他点击事件,如果你这样问
【解决方案2】:

请尝试在 aspx 页面pageLoad 函数中添加脚本,而不是 $(document).ready 像:

    <script type="text/javascript">
        var characterLimit = 160;
        function pageLoad() {
            $("#lblremaingCharacters").html(characterLimit);
            $("#txtmessage").bind("keyup", function () {
                var characterInserted = $(this).val().length;
                if (characterInserted > characterLimit) {
                    $(this).val($(this).val().substr(0, characterLimit));
                }
                var characterRemaining = characterLimit - characterInserted;
                $("#lblremaingCharacters").html(characterRemaining);
            });
        }
    </script>

【讨论】:

    【解决方案3】:

    形成你的代码,我得到你正在使用$(document).ready()

    你需要使用

    function pageLoad()
    {
    //Your Code
    }
    

    这样就可以解决问题了

    【讨论】:

      猜你喜欢
      • 2021-03-02
      • 2012-06-08
      • 2018-01-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-29
      • 1970-01-01
      相关资源
      最近更新 更多