2013-12-06 3 views
-2

Этот код отлично работает в Chrome & Firefox - но не работает в IE & Safari.Переменные Javascript, не работающие в IE || скрытые параметры с Javascript

<script type="text/javascript"> 
$(document).ready(function() { 

alert('1'); 

<?php foreach($options as $option): ?> 
    <?php if($option['option_choice'] == 1): ?> 
    var choiceid = <?php echo $option['product_option_id']; ?>; 
     <?php foreach ($option['option_value'] as $option_value): ?> 
     <?php if($option_value['whatsize'] == 2): ?> 
      var choicebigid = <?php echo $option_value['product_option_value_id']; ?>; 
     <?php endif; ?> 
     <?php endforeach; ?> 
    <?php endif; ?> 
<?php endforeach; ?> 

    alert('2'); 
    $('#'+choiceid+''+2).hide(); 
}); 
</script> 

Предупреждение 1 +2 показывает в Chrome/FF, но только предупреждение 1 показано в IE.

--- Сформирован Chrome JS ---

<script type="text/javascript"> 
$(document).ready(function() { 
alert('1'); 
var choiceid = '321'; //Produktvalg ID 
var choicebigid = '1111'; 
$('#'+choiceid+''+2).hide(); 
document.getElementById(choiceid+''+2).style.display = 'none'; 
alert(choiceid); 
}); 
</script> 

--- Сформирован IE JS ---

<script type="text/javascript"> 
$(document).ready(function() { 
alert('1'); 
var choiceid = '321'; //Produktvalg ID 
var choicebigid = '1111'; 
$('#'+choiceid+''+2).hide(); 
document.getElementById(choiceid+''+2).style.display = 'none'; 
alert(choiceid); 
}); 
</script> 

--- Update ---

Добавление одиночные кавычки казалось, помогли генерировать IE JS-код - до того, как он был пуст. Это также добавило style = "display: none;" Новая проблема заключается в том, что скрытие опции не поддерживается в IE и Safari. Также отключит опцию, скрывая ее.

--- Состояние --- Исправлено. Конец проблема, казалось, скрываются и

+7

, что делает сгенерированный JS выглядеть? –

+0

Проверьте консоль браузера на наличие сообщений об ошибках. – Spudley

+1

Ваш цикл повторно устанавливает одну и ту же переменную в разные значения. Почему вы делаете это в цикле? – Barmar

ответ

0

Попробуйте с одной цитатой

var choiceid = '<?php echo $option['product_option_id']; ?>'; 

var choicebigid = '<?php echo $option_value['product_option_value_id']; ?>' 
+0

В цикле есть только одна переменная $ option ['option_choice'], которая содержит значение «1». – user3074352

+0

Устранена проблема с генерацией кода - теперь проблема заключается в том, что JS не скрывает элемент в IE. – user3074352

+0

check in html, у вас есть элемент с id = "3212" и не используйте .hide и пока не покажите его вместе. Только скрыть достаточно. – kwelsan

Смежные вопросы