Javascript jQuery中的if语句在Chrome或Safari中不起作用

Javascript jQuery中的if语句在Chrome或Safari中不起作用,javascript,jquery,google-chrome,Javascript,Jquery,Google Chrome,如果用户选择恢复并选择状态为“OOS”的记录,则会在Chrome中收到警告消息,提示该记录状态不正确。在IE中,如果您选择相同的记录,则不会显示警报消息,这是正确的。当我使用您的代码时,如下所示: I have the following code that is working in IE 8 but not in Chrome or Safari: $(document).ready(function(){ $('.goRedIMG').on('click',function(

如果用户选择恢复并选择状态为“OOS”的记录,则会在Chrome中收到警告消息,提示该记录状态不正确。在IE中,如果您选择相同的记录,则不会显示警报消息,这是正确的。

当我使用您的代码时,如下所示:

I have the following code that is working in IE 8 but not in Chrome or Safari:


 $(document).ready(function(){
    $('.goRedIMG').on('click',function(event){
            var ischecked = false;
            var isOKtoSubmit = true;
            var alertMessage = 'No tools have been selected';
            var statusvar = '';
            var transferstatusvar = '';
            var action = $('#uTransaction option:selected').html();

            $('.chkaction').each(function() { //loop through each checkbox
                statusvar = $(this).closest('tr').children('.recordStatus').html();
                transferstatusvar = $(this).closest('tr').children('.transferstat').html()

                if($(this).prop('checked')) {
                    ischecked = true;
                    //alert(action);
                   // alert(statusvar);
                  //  alert(transferstatusvar);


                   if (action == 'Recover'){ 
                       if (statusvar != 'OOS'){
                          // alert(statusvar);
                            isOKtoSubmit = false;
                            alertMessage = 'One or more records cannot be recoverd due to status not   being OOS and Transfer Status not OK';               
                       }
                   }
if(isOKtoSubmit && ischecked !== false && action !== '--Select One--'){                 
                $('#toolActions').submit();         
            }else {
                alert(alertMessage);
            }
    });
在两种浏览器中,它都能正确运行。我认为你的数据有问题

在原始代码中尝试使用

  var action = 'Recover';
  var statusvar = 'OOS';

  if (action == 'Recover') {
      if (statusvar != 'OOS') {

          alert('One or more records cannot be recoverd due to status not   being OOS and Transfer Status not OK'); 

      }
  }

并检查变量的字符长度。通过这种方式,您可以查看statusvar变量中是否有任何有趣的字符。

请尝试$'uTransaction option:selected'.val或$'uTransaction option:selected'.text;我可能会建议您的条件>ifisOKtoSubmit&&ischecked!==错误和操作!=='-选择一个-'哪个语句不起作用?如果操作==“恢复”或如果状态变量!='OOS'?还可以尝试使用.text而不是.html。我认为它不喜欢if statusvar!='OOS’。根据您的建议,我在var action中输入了.text=$'uTransaction option:selected'。text;但这并不能解决问题。我也试过了。瓦尔,那也没用。就是这样。OOS的长度为4,因此其中必须有一个空间。谢谢你。我不认为会是这样,因为它在IE中工作。
alert(statusvar + ' - length:' + statusvar.length)