Javascript表单脚本无法在手机上工作(但在桌面上完美)
问题描述:
你好,我有一个JS问题,因为我不知道多少它,我不知道从哪里开始,以解决它!Javascript表单脚本无法在手机上工作(但在桌面上完美)
我目前有一个脚本运行在django网页上,它隐藏了两个选项列表中的不兼容选项;使用参考词典。
该脚本在桌面上工作得很好; ,但当我从移动设备上查看页面时根本没有。(所有的选项仍然可见...!)
任何想法都会非常感激!
这里是JS Fiddle
<div class="form-group col-sm-4 col-md-3">
<label for="id_tasks">Tasks:</label>
<select class="form-control" id="id_tasks" name="task">
<option value="0" selected="selected">---------</option>
<option value="1">Tie-job: Front-tie Marker</option>
<option value="2">Tie-job: Scrapmachine support trackman</option>
<option value="3">Tie-job: Plate Thrower</option>
<option value="4">Tie-job: New-tie Marker</option>
</select>
</div>
<div class="form-group col-sm-4 col-md-3">
<label for="id_craft">Craft:</label>
<select class="form-control" id="id_craft" name="craft">
<option value="0" selected="selected">---------</option>
<option value="1">Senior Engineer</option>
<option value="2">Roadmaster</option>
<option value="3">Foreman</option>
<option value="4">Assistant Foreman</option>
<option value="5">Electrical Welder EA</option>
<option value="6">Oxygen Welder OA</option>
<option value="7">Railway Machine Operator (RMO)</option>
<option value="8">Truck Driver (Type A, B or C)</option>
</select>
</div>
而且JS
$(document).ready(function() {
$("#id_craft option:not([value=0])").hide();
});
$("#id_tasks").change(function() {
$("#id_craft").val("0");
$("#id_craft option:not([value=0])").hide();
var compIds = {
1: [1, 2],
2: [3, 4],
3: [4, 5],
4: [6, 7]
};
for (var i = 0; i < compIds[$("#id_tasks").val()].length; i++) {
$("#id_craft option[value=" + compIds[$("#id_tasks").val()][i] + "]").show();
}
});
答
我相信有一个问题在iOS上与确认您的选择option:not([value=0])
。
您应该检查http://caniuse.com/以查看移动设备是否支持该方法,如果不支持,则可以使用.forEach()
循环代替。
这个问题如何不同,你已经[删除5分钟](http://stackoverflow.com/questions/43520742/javascript-form-script-not-working-on-mobile-but-perfect- on-dekstop)之前? – Andreas
您正在测试哪些设备/浏览器? –
适用于Chrome和Firefox(但不适用于IE ...);不能在iOS(Safari)上运行,尽管... – Malcoolm