用户更改输入后,表单字段仍未定义
Form field still undefined after user changes input
我有以下javascript代码片段,它应该充当我的表单验证,以确保当用户提交表单时,没有任何字段为空。该代码适用于"Detector_Type",因为它的默认值是"。
但是,当我将文本添加到下一个字段"Name_and_Part_Number"并尝试提交时,该值在控制台日志中仍显示为"未定义",即使我在文本字段中输入了文本也是如此。
为什么会发生这种情况,我该如何做到这一点,以便在我输入文本时它不再变得未定义?
编辑1:存储在表单中的数据存储为RoR变量,这可能会有所不同。
JS代码:
function validateForm(formId)
var fields = ["Detector_Type", "Name_and_Part_Number", "Type", "FPA_Size", "Pitch"]
var errors = ["Detector Type", "Name and Part Number", "Type", "FPA Size", "Pitch"]
var i, l = fields.length;
var fieldname;
for (i = 0; i < l; i++) {
fieldname = fields[i];
console.log(fieldname + ": " + document.getElementById(fieldname).value);
if ((document.getElementById(fieldname).value === "") || (typeof document.getElementById(fieldname).value === 'undefined'))) {
alert(errors[i] + " can not be empty");
return false;
}
}
return true;
}
}
网页代码:
...
<div class="field">
<%= f.label :Detector_Type %><br>
<select class="flat-text" style="width: 240px;" name='spreadsheet[Detector_Type]' id='Detector_Type' onclick="toggle_visibility('Detector_Type');" >
<option value=''>Choose a category...</option>
<option value="GMAPD">GMAPD</option>
<option value="DFPA">DFPA</option>
<option value="Other">Other </option>
</select>
</div>
<div class="field" id="Name_and_Part_Number">
<%= f.label :Name_and_Part_Number %><br>
<%= f.text_field :Name_and_Part_Number%>
</div>
<div class="field" id= "Type">
<%= f.label :Type %><br>
<%= f.text_field :Type %>
</div>
<div class="field" id= "FPA_Size">
<%= f.label :FPA_Size %><br>
<%= f.text_field :FPA_Size %>
</div>
<div class="field" id= "Pitch">
<%= f.label :Pitch %><br>
<%= f.text_field :Pitch %>
</div>
...
字段是一个 DIV,要访问 HTML 元素的文本值,您可以使用与值相反的 innerHTML 属性。
如果要
确保每个text_field都不为空,则需要检查字段而不是div。你可以添加一个子选择器到你的javascript。
所以像
$('#id input').first().val()
会让你得到那个div下的输入,然后是它的值。
如果表单需要所有字段,那么您可以对所有输入使用选择器,然后循环遍历它们,而不是循环浏览静态 ID 列表。
最终只使用 rails :require => 真正的验证,没有自定义错误消息
相关文章:
- 通过单击动态加载的表中同一行的另一个字段来更新一行的字段
- 添加和删除隐藏字段数组中的值,而不提交表单
- 单击鼠标,用MySQL数据填充html表单输入字段
- 带有条件字段的PHP表单
- 验证PDF表单中的字段
- HTML提交表单,同时包含空字段检查和按钮隐藏
- 在表单中的输入字段上提交事件
- 当所有输入文本字段都为空时,禁止表单提交,但当jquery中的任何字段不为空时允许提交
- 表单输入字段随着溢出的文本而增长
- 如何将onChange方法添加到ExtJS 4表单中的所有字段(textField)中
- 尝试使用名称访问表中字段的日期选取器时出现问题
- Javascript 表单 - 字段不是必需的
- 单击按钮时更改数据库表的字段值
- 数据表将字段值关联到按钮,而 ajax 填充表
- 返回数据表输入字段
- 更改附加表行字段jQuery的名称
- Angularjs表单/字段验证使用JavaScript函数,无需指令
- 仅在Firefox中,表脱离字段集边界
- 如何在表单提交后使用JQuery从附加到HTML表的字段中获取$_POST数组中的值
- 什么's提交表单后,从post数组中动态附加的表行字段中获取值的问题