У меня есть тест для рабочего стола браузера, такого как Chrome , Firefox и Safari на Macbook .
Все они работают нормально, но на iOS-устройствах получают пустое значение
Тест на iPhone5 8.1.2
HTML:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Control Panel</title>
<script src="jquery.min.js" type="text/javascript"></script>
<script src="admin.js" type="text/javascript"></script>
</head>
<body>
<input type="text" id="change_type" name="change_type" hidden="hidden" value="" />
<div class="type-select">
<div class="radio">
<input id="simple_captcha" name="captcha_select" type="radio" value="simple_captcha" />
<label for="simple_captcha" class="select-label radio-label">Simple Captcha</label>
</div>
<div class="radio">
<input id="svg_captcha" name="captcha_select" type="radio" value="svg_captcha" />
<label for="svg_captcha" class="select-label radio-label">SVG Captcha</label>
</div>
</div>
<script src="type.js" type="text/javascript"></script>
</body>
admin.js (загрузить в тег head):
function detectSetting(settingType, mod) {
var setting_type = $('#change_type').attr('value');
var data = {};
data['settingType'] = setting_type;
$.ajax({
url: 'admin.php?mod='+mod,
data: data,
type: 'POST',
success: function(data) {
$('#show-setting').html(data);
},
error: function() {
return false;
}
});
}
type.js (загрузка в теге body):
var mod = 'type';
$('.type-select>.radio input').change(function() {
detectSetting('show_captcha_type', mod);
});
$('.type-select>.radio').click(function(event) {
$('#change_type').attr('value', event.target.id);
});
Я использую Safari Debug, чтобы увидеть результат на консоли,
только на iOS скрипт $('#change_type').attr('value');
станет пустым, даже если я использую Safari на Mac, он работал нормально, поэтому я думаю, что проблема на iOS ...
Редактировать: скрипт $('#change_type').attr('value', event.target.id);
работал нормально, он успешно изменяет атрибут значения #change_type
, просто не может прочитать его значение на iOS