简单的Javascript在Internet Explorer上不起作用

时间:2014-02-19 09:28:24

标签: javascript

我的网站有一个安全的登录表单。在登录过程中,我使用名为form.js的文件。当我输入用户名和密码时,它会加载但不会将我引导到该页面,但Chrome上的一切正常。我收到此通知(点击图片链接):

enter image description here

这是forms.js代码:

function formhash(form, password) {
    // Create a new element input, this will be our hashed password field. 
    var p = document.createElement("input");

    // Add the new element to our form. 
    form.appendChild(p);
    p.name = "p";
    p.type = "hidden";
    p.value = hex_sha512(password.value);

    // Make sure the plaintext password doesn't get sent. 
    password.value = "";

    // Finally submit the form. 
    form.submit();
}

对这个问题有任何想法吗?

1 个答案:

答案 0 :(得分:3)

在将元素添加到DOM后,Internet Explorer不允许您更改元素的type属性。您必须在附加节点之前设置此属性

此外,设置节点属性的正确方法是使用setAttribute()函数。

这应该有效:

function formhash(form, password) {
    // Create a new element input, this will be our hashed password field. 
    var p = document.createElement("input");
    p.setAttribute("name","p");
    p.setAttribute("type","hidden");
    p.setAttribute("value",hex_sha512(password.value));

    // Add the new element to our form. 
    form.appendChild(p);

    // Make sure the plaintext password doesn't get sent. 
    password.value = "";

    // Finally submit the form. 
    form.submit();
}