通过javascript编辑html输入表单的值

时间:2011-04-23 08:02:53

标签: javascript html

我的HTML代码:

<form action="Generator.klx" method="post" onsubmit="genarate('hiddenField')">
   <input type="hidden" id="hiddenField" name="hidden" value=""/>
   <input type="submit" name="submit"/>
</form>

我的JavaScript:

function genarate(hiddenField){
  var field = document.getElementById(hiddenField);
  field.value = "new Value";
 }

但它没有奏效:(。任何人都可以告诉我哪里错了吗?
谢谢

2 个答案:

答案 0 :(得分:3)

引用的代码应该正常工作,并且在我的各种浏览器测试中都可以使用。 (我已在本地尝试使用POSTed表单,但您也可以在此处尝试:http://jsbin.com/ehoro4/1我已将方法更改为GET,以便您可以在网址中查看结果。)< / p>

我的猜测是,您在nameid“hiddenField”页面上有 else ,而不仅仅是您引用的隐藏字段。如果您将字段的名称更改为“fluglehorn”或其他不太可能在您页面上的其他位置的内容,则可能会有效。那是因为getElementById使用的命名空间(遗憾地)非常拥挤。

或者,您确定genarate出现在全球范围内吗? (例如,它超出了所有其他功能。)因为onsubmit属性要求genarate是全局的。所以这有效:

<form action="#" method="get" onsubmit="genarate('hiddenField')">
   <input type="hidden" id="hiddenField" name="hidden" value=""/>
   <input type="submit" name="submit"/>
</form>
<script>
function genarate(hiddenField){
  var field = document.getElementById(hiddenField);
  field.value = "new Value";
}
</script>

但是例如这不会:

<form action="#" method="get" onsubmit="genarate('hiddenField')">
   <input type="hidden" id="hiddenField" name="hidden" value=""/>
   <input type="submit" name="submit"/>
</form>
<script>
(function() { // Begin scoping function to avoid global symbols (not uncommon)
    function genarate(hiddenField){
      var field = document.getElementById(hiddenField);
      field.value = "new Value";
    }
})();
</script>

还建议使用调试器(2011年不使用客户端调试器no excuse)在genarate函数上设置断点并查看,看看出了什么问题。

答案 1 :(得分:-1)

crud.html

<!DOCTYPE html>
<html>
<head>
<title></title>
<script src="JavaScript.js"></script>
</head>
<body>
<input type="text" name="name" id="name"  onfocus="opConfig.reloadPrice()">
<button type="button" onclick="myFun()">submit</button>
<button type="button" onclick="update()">update</button>
<br><br>
<p id="table"></p>
</body>
</html>

JavaScript.js

var arr = [];
var index;
function myFun()
{
var name = document.getElementById('name').value;
arr.push(name);
table();

}
function table(){
var text = "<table border=1><tr><th>username</th><th>action</th></tr>"
for (var i = 0; i < arr.length; i++) {
text+="<tr><td>"+arr[i]+"</td><td><button 
onclick=myDELE("+i+");>delete</button><button 
onclick=myEdit("+i+");>edit</button></td></tr>"
}
text+="</table>";
console.log(text);

document.getElementById('table').innerHTML = text;
tablehidden();
}

function myDELE(i)
{
var name = arr.splice(i,1);

// name.splice(i,1);
console.log(name);
table();
tablehidden();
}
function tablehidden(){
if (!arr.length) { document.getElementById('table').hidden=true; }
else{document.getElementById('table').hidden=false;}
}
function myEdit(i)
{
text = document.getElementById('name').value = arr[i];
         index = i;
}
function update(){
arr[index]=document.getElementById('name').value ;
table();
tablehidden();
}