【发布时间】:2020-08-25 12:28:30
【问题描述】:
我想用 JS 制作一个简单的应用程序来识别表单字段 其中包括字段的 id 及其对应的文本。
例如,对于以下站点:https://freeditorial.com/en/register
文本:电子邮件
id:“user_email”
我可以使用以下代码:
form = document.getElementsByClassName("control-group")
form[0].innerText
form[0].querySelector("input").id
问题在于,这取决于类名,每个站点都可以更改。 有没有办法从表单中获取相同的数据?
我正在尝试:
var site_forms = document.forms
如果我检查表单的文本,数据似乎就在那里:
site_forms[0].innerText
这是其中的一部分:
<input id="user_role_ids" name="user[role_ids]" type="hidden" value="2">
<div class="control-group">
<label for="user_email">Email</label>
<div class="controls">
<input type="text" value="" name="user[email]" id="user_email">
</div>
</div>
<span id="erroremail" class="rightCol error"></span>
<div class="control-group">
<label for="user_name">Name</label>
<div class="controls">
<input id="user_name" name="user[name]" size="30" type="text">
</div>
</div>
<div class="control-group">
<label for="user_last_name">Last Name</label>
<div class="controls">
<input id="user_last_name" name="user[last_name]" size="30" type="text">
</div>
</div>
<div class="control-group">
<label for="user_username">Name by which you publish</label>
<div class="controls">
<input type="text" value="" name="user[username]" id="user_username">
</div>
</div>
<div class="control-group">
<label for="user_country_code">Country</label>
<div class="controls">
<select id="user_country_id" name="user[country_id]">
<option value="">Country</option>
<option value="3">Afghanistan</option>
<option value="6">Albania</option>
但我没有找到可靠的提取方法。
【问题讨论】:
-
查看
FormData API。只要将<form>元素作为参数给出,它就会从每个输入元素中提取所有name和value对。
标签: javascript html jquery-selectors