前段时间我决定停止使用事件属性来分离HTML和Javascript。
现在我有了这个HTML。
<form name="x" action="x.php" method="get">
<label>
<select name="language" size="1" id="languageselect">
<option value="da" selected>Dansk (da)</option>
<option value="en">English (en)</option>
<option value="">Brug browserens indstillinger</option>
</select>
</label>
</form>
这个Javascript。 但我想知道我的代码是否会更好,似乎偶尔会在我的Javascript日志文件中收到有关“this.form.submit();”的错误消息。
<script type="text/javascript">
'use strict';
function languageformsubmit () {
this.form.submit();
}
function init_hjemmeside_addeventlistener () {
var languageselect;
if (document.getElementById('languageselect')) {
languageselect = document.getElementById('languageselect');
languageselect.addEventListener('change', languageformsubmit, false);
}
}
function init_hjemmeside_attachevent () {
var languageselect;
if (document.getElementById('languageselect')) {
languageselect = document.getElementById('languageselect');
languageselect.attachEvent('onchange', languageformsubmit);
}
}
if (window.addEventListener) {
window.addEventListener('load', init_hjemmeside_addeventlistener, false);
} else if (window.attachEvent) {
window.attachEvent('onload', init_hjemmeside_attachevent);
}
</script>
代码工作正常,但我想知道它是否可以更好。
答案 0 :(得分:0)
您可以发布您获得的确切错误,以便我们为您提供帮助。 除此之外,它可以满足您的需求,在您更改选择中的选定选项时提交表单。 顺便说一下,你可以通过使用jQuery来改进它,尽管你可能不希望这样。
JQuery的:
$(document).ready(function() {
$('#languageselect').on('change', function() {
$(this).closest('form').submit();
});
});