我已经测试了台式机浏览器,例如 Macbook 上的 Chrome , Firefox 和Safari。
它们都可以正常工作,但只能在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');
脚本将为空,即使我在Mac上使用Safari,它也可以正常工作,所以我认为问题出在iOS上...
编辑:脚本$('#change_type').attr('value', event.target.id);
工作正常,成功更改了#change_type
的value属性,只是无法在iOS上读取它的值