Jquery 全局变量未按预期工作

Jquery 全局变量未按预期工作,jquery,global-variables,Jquery,Global Variables,我有以下代码 <script type="text/javascript"> $(function() { var originalValue = $('#IndividualSystemSerialNumberCompanyId').val(); $('#IndividualSystemSerialNumberCompanyId').change(function() { var main

我有以下代码

<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>

$(函数()
{
var originalValue=$('#IndividualSystemSerialNumberCompanyId').val();
$('#IndividualSystemSerialNumberCompanyId')。更改(函数()
{
var main=$(此值);
var newValue=main.val();
$(“#ChangeCompanyName”).remove();
if(原始值!=新值)
{
控制台日志(原始值);
main.after('更改公司名称将永久性地将IPC传输到更改的公司,并且旧的IPC记录将被禁用');
}
});
});
但上面的代码不起作用,每次都是在
console.log(originalValue)
中给我2,我的意思是如果我选择旧的选择值,它总是执行
if
条件


我是否需要定义
var原始值之前?

这是因为您的
原始值始终等于
2
,因此您需要在
语句中为其指定新值,如果
语句:

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>');
}
if(originalValue!=newValue)
{
控制台日志(原始值);
原始值=新值;
main.after('更改公司名称将永久性地将IPC传输到更改的公司,并且旧的IPC记录将被禁用');
}

这是因为您的
原始值始终等于
2
,因此您需要在
语句中为其指定新值,如果
语句:

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>');
}
if(originalValue!=newValue)
{
控制台日志(原始值);
原始值=新值;
main.after('更改公司名称将永久性地将IPC传输到更改的公司,并且旧的IPC记录将被禁用');
}

谢谢你的帮助,看看我的问题,但在JSFIDLE开发演示时,我解决了这个问题

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

<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>

var初始值;
$(函数()
{
originalValue=$('#IndividualSystemSerialNumberCompanyId').val();
$('#IndividualSystemSerialNumberCompanyId')。更改(函数()
{
var main=$(此值);
var newValue=main.val();
$(“#ChangeCompanyName”).remove();
if(原始值!=新值)
{
main.after('更改公司名称将永久性地将IPC传输到更改的公司,并且旧的IPC记录将被禁用');
}
});
});
我已经在
document.ready
块之外定义了它,它已经解决了。可能是因为fiddle do自动调用
document.ready
所以旧代码在那里工作,但上面的更改对我来说无处不在


再次感谢您花费时间。

感谢您的帮助并查看我的问题,但在JSFIDLE开发演示时,我解决了这个问题

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

<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>

var初始值;
$(函数()
{
originalValue=$('#IndividualSystemSerialNumberCompanyId').val();
$('#IndividualSystemSerialNumberCompanyId')。更改(函数()
{
var main=$(此值);
var newValue=main.val();
$(“#ChangeCompanyName”).remove();
if(原始值!=新值)
{
main.after('更改公司名称将永久性地将IPC传输到更改的公司,并且旧的IPC记录将被禁用');
}
});
});
我已经在
document.ready
块之外定义了它,它已经解决了。可能是因为fiddle do自动调用
document.ready
所以旧代码在那里工作,但上面的更改对我来说无处不在


再次感谢您花费时间。

我假设它也为
newValue
的值提供了2。你检查过你的
元素结构是否正确了吗?@jrade是的,我有…对于
newValue
我得到了正确的值。你是说当originalValue==newValue时,它仍然满足条件语句吗?@jrade,正如你所看到的,我正在尝试存储所选的
选项
值进入
originalValue
中,当
选择框change
时,我将更改的
分配给
新值
,然后检查
条件
当两个值不相同时…如果相同,则不执行任何操作如果
不同,则显示消息,我假设它也为
newValue
的值提供了2。你检查过你的
元素结构是否正确了吗?@jrade是的,我有…对于
newValue
我得到了正确的值。你是说当originalValue==newValue时,它仍然满足条件语句吗?@jrade,正如你所看到的,我正在尝试存储所选的
选项
值进入
originalValue
中,当
选择框change
时,我将更改的
分配给
新值
,然后检查
条件
当两个值不相同时…如果相同,则不执行任何操作如果
不同,则显示消息,谢谢你的回答,但你搞错了…我想要的是将页面加载选择存储到
选项
值存储到
原始值
中,当下拉时
更改
将其与更改的值进行比较,如果不匹配,则向用户显示消息…谢谢你的回答,但你搞错了…我想要的是存储页面加载选择
选项
值至
原始值
并在下拉时
更改
将其与更改后的值进行比较,如果不匹配,则向用户显示消息。。。