为`<;优化Javascript代码;选择>`

为`<;优化Javascript代码;选择>`,javascript,Javascript,不久前,我决定停止使用on-event属性来分离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&

不久前,我决定停止使用on-event属性来分离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>

丹斯克(da)
英语(英文)
布鲁格·布朗塞伦·因迪林格
还有这个Javascript。 但我想知道我的代码是否能更好,我似乎偶尔会在Javascript日志文件中收到一条关于“this.form.submit();”的错误消息


"严格使用",;
函数语言FormSubmit(){
这个.form.submit();
}
函数init_hjemmeside_addeventlistener(){
var语言选择;
if(document.getElementById('languageselect')){
languageselect=document.getElementById('languageselect');
languageselect.addEventListener('change',languageformsubmit,false);
}
}
函数init_hjemmeside_attachevent(){
var语言选择;
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('onload',init_hjemmeside_attachEvent);
}

代码运行良好,但我想知道它是否可以更好。

您可以发布您得到的确切错误,以便我们可以帮助您。 除此之外,它还执行您想要的操作,当您在“选择”对话框中更改所选选项时提交表单。 顺便说一下,您可以通过使用jQuery来改进它,尽管您可能不希望这样

JQuery:

$(document).ready(function() {
    $('#languageselect').on('change', function() {
        $(this).closest('form').submit();
    });
});

我现在没有错误消息,但我在错误日志中看到过几次,所以我想也许在调用this.form之前可以测试一下。我不想使用jquery.ok。我能想到的唯一测试是this或this.form是否为null或未定义。如果您看到错误,请在此处发布。
$(document).ready(function() {
    $('#languageselect').on('change', function() {
        $(this).closest('form').submit();
    });
});