如何在不使用element'的情况下使用javascript访问表单元素;s的id

How to access form element with javascript without using element's id

本文关键字:访问表 访问 表单 元素 id javascript 情况下 element      更新时间:2023-09-26

我想使用javascript访问表单元素。表单是动态生成的,因此表单的名称、id和元素都是可变的。我想通过提供由不同脚本生成的表单的名称来获得其中textarea的id值。

例如:

<form method=post name=form33>
    <textarea id=466 cols=50 rows=5></textarea>
    <input name=submit33 onclick=postCmnt(33) value=Post type=button>
</form>

我有表单名称"form33"的名称,我需要它的textarea id,即466作为输出。。。

Javascript生成表单:

function openComment(id, msgid, div) {
    var div = document.getElementById(div);
    div.innerHTML = "<form method=post name=form"+id+">
        <textarea id="+msgid+" cols=50 rows=5></textarea>
        <input name=submit"+id+" onclick=postCmnt("+id+") value=Post type=button>
        </form>"
}

需要访问表单的Javascript

以下是我尝试通过提供表单名称来访问textareaid名称。

function postCmnt(id){
    var msgid=document.forms["form"+id].elements[0].id.value;//the text area's id
    var msg=document.getElementById(msgid).value;//value of text area
    //rest scripts goes here        
} 

信息:

  1. 表单不是通过调用函数openComment()静态生成的
  2. 预测页面中表单的数量是不可能的,因为这取决于用户输入。尽管文本区域是表单的第一个元素

您可以添加一个包含msgid:的隐藏字段

Javascript生成表单:

function openComment(id,msgid,div){
    var div = document.getElementById(div);
    div.innerHTML="<form method=post name=form"+id+">
        <input type='hidden' id='theid"+id+"' value='"+msgid+"'>
        <textarea id="+msgid+" cols=50 rows=5></textarea>
        <input name=submit"+id+" onclick=postCmnt("+id+") value=Post type=button>
        </form>"
}

然后直接得到值:

function postCmnt(id){
    var msgid=document.getElementById("theid"+id).value;//the text area's id
    var msg=document.getElementById(msgid).value;//value of text area
    //rest scripts goes here        
} 

如果文档中只有一个表单,则可以执行

   document.forms[0]

如前所述,您可以使用

 document.getElementById("teller")[i]

访问id为"teller"的表单的第i个字段。

演示