全局变量没有按预期工作



我有以下代码

<script type="text/javascript">
    $(function()
    {
        var originalValue = $('#IndividualSystemSerialNumberCompanyId').val();
        $('#IndividualSystemSerialNumberCompanyId').change(function()
        {
            var main     = $(this);
            var newValue = main.val();
            $('#ChangeCompanyName').remove();
            if(originalValue != newValue)
            {
                console.log(originalValue);
                main.after('<span id="ChangeCompanyName" style="color:red;">&nbsp;&nbsp;&nbsp;Changing Company name will permanatly trasnfer IPC to changed company and old IPC record will be disabled.</span>');
            }
        });
    });
</script>

但是上面的代码不是每次都工作,在console.log(originalValue)中给我2,这意味着如果我选择旧的选定值,它总是执行if条件。

需要先定义var originalValue;吗?

谢谢你的帮助,看看我的问题,但在jsfiddle开发Demo期间,我解决了这个问题。

我已经使用了下面的代码,它的工作完美。

<script type="text/javascript">
    var originalValue;
    $(function()
    {
        originalValue = $('#IndividualSystemSerialNumberCompanyId').val();
        $('#IndividualSystemSerialNumberCompanyId').change(function()
        {
            var main     = $(this);
            var newValue = main.val();
            $('#ChangeCompanyName').remove();
            if(originalValue != newValue)
            {
                main.after('<span id="ChangeCompanyName" style="color:red;">&nbsp;&nbsp;&nbsp;Changing Company name will permanatly trasnfer IPC to changed company and old IPC record will be disabled.</span>');
            }
        });
    });
</script>

我已经在document.ready块之外定义了它,它已经解决了。可能是因为小提琴自动调用document.ready ,所以旧代码在那里工作,但上面的更改对我来说无处不在。

再次感谢您的光临。

这是因为你的originalValue永远不会得到更新,它总是等于2,你需要在你的if语句中给它分配新的值:

if(originalValue != newValue)
{
    console.log(originalValue);
    originalValue = newValue;          
    main.after('<span id="ChangeCompanyName" style="color:red;">&nbsp;&nbsp;&nbsp;Changing Company name will permanatly trasnfer IPC to changed company and old IPC record will be disabled.</span>');
}

相关内容

  • 没有找到相关文章

最新更新