Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/477.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript:无法创建新的隐藏输入元素_Javascript_Security - Fatal编程技术网

Javascript:无法创建新的隐藏输入元素

Javascript:无法创建新的隐藏输入元素,javascript,security,Javascript,Security,我按照中的代码创建了一个安全的登录页面。问题是,它无法创建隐藏的输入元素 function formhash(form, password) { // Create a new element input, this will be out hashed password field. var p = document.createElement("input"); // Add the new element to our form. form.appendCh

我按照中的代码创建了一个安全的登录页面。问题是,它无法创建隐藏的输入元素

function formhash(form, password) {
    // Create a new element input, this will be out 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();
}
我读了一遍,说它只对IE有效,对gecko无效。这是真的还是我错过了什么

更新:

当我将javascript放入登录页面时,formhash函数起作用。当移动到外部文件时,问题再次出现

@阿斯普林指出。我之所以使用php,是因为代码基于php实现

@亨里克会这么做的。谢谢

@RenePot是的,它是在process_login.php页面上调用的

@谢谢你的建议。注意,它说函数不是declare

@WernerVesterå不确定,但我想之后


@昆汀:谢谢你的建议。将这样做:D

很可能,
表单
没有设置为您认为的值,jsfiddle.net可能会帮助我们和您进行调试。我在Comment out hidden设置了一个工作版本,以实际查看它的工作情况。请注意,您不会在浏览器中的“查看源”中删除隐藏的输入字段,因为它是动态添加到dom中的!使用firebug或chrome开发工具查看它

此外,您很可能希望使用库来简化开发平台无关代码的过程,而不是编写简单的javascript。

在IE8(至少)中,您需要先设置
类型
属性,然后再使用
setAttribute()


在IE7、IE8和Chrome中测试。

会发生什么?控制台中有错误吗?最好从这个问题中删除“php”标记,因为它似乎纯粹与js有关。请将您的代码放在类似jsfiddle.net的东西上,以便我们更容易提供帮助。如果您使用的是firebug,然后看看在脚本执行时和执行后html代码会发生什么情况在加载DOM之前还是之后调用此函数?是的,我将其更改为更通用。嘿嘿。。。你不知道我错了。(我已经删除了我的评论。)
var p = document.createElement("input");
p.setAttribute("type", "hidden");
form.appendChild(p);