'<tr>
<td class="label" width="40%"> Business Unit Code </td>
<td class='inputField">
<input type="text" value name="attribute1" size="20" readonly maxLength="25">" "
<input class="button" name="button1" type ="button" size="200" value=".." alt="..." onclick="function1{};">
</td>
</tr>
<tr>
<td class="label" width ="40%" >style</td>
<td class="inputField">
<select name="attribute2">
<option selected value></option>
<option value="1">1</option>
<option value="2">2</option>
</select>
</td>
</tr>
<tr>
<td class="label" width="40%"> car line </td>
<td class='inputField">
<input type="text" name="attribute3" size="null" value>
</td>
</tr>`
在ablove代码中,我想只获取输入字段“attribute3”。如果我正在尝试使用javascript“document.getElementsByClassName('inputfield')”它将获取attribute1和attribute3。但我希望attribute3的值验证值。 请提供javascript验证码。
答案 0 :(得分:2)
您可以使用 getElementsByName
var x = document.getElementsByName("attribute3");
请注意,它返回一个NodeList对象,表示一个 具有指定名称的元素的集合。中的元素 返回的集合按源代码中的显示进行排序。因此,如果您想验证其值,则可能需要执行
document.getElementsByName("attribute3")[0].value
因此,如果您将id
提交给elements
并使用getElementById
返回单element
作为id
,我会建议您这样做会很好在DOM
<强>更新强>
要使所有input type=text
元素使用 document.querySelectorAll
对于Ex:
var nodes = document.querySelectorAll("#yourformid input[type=text]");
for (var i=0; i<nodes.length; i++)
{
//get the value using nodes[i].value
}
答案 1 :(得分:2)
根据评论@Guruprasad Rao,您需要所有输入文本字段。
在JavaScript中,你可以这样做:
var inputs = document.getElementsByTagName('input');
for(var i = 0; i < inputs.length; i++) {
if(inputs[i].type.toLowerCase() == 'text') {
console.log(inputs[i].value);
}
}
在Jquery中你可以做到:
$("input:text")
答案 2 :(得分:1)
Selector: document.querySelectorAll('[name="attribute3"]')
Value : document.querySelectorAll('[name="attribute3"]')[0].value
答案 3 :(得分:0)
如果您需要纯JavaScript,可以考虑以下内容:
//<![CDATA[
var pre = onload;
onload = function(){
if(pre)pre();
var doc = document, bod = doc.body;
function E(id){
return doc.getElementById(id);
}
function N(name, element){
var e = element || doc;
return e.getElementsByName(name);
}
function cN(className, element){
var e = element || doc;
if(e.getElementsByClassName){
return e.getElementsByClassName(className);
}
else{
var x = e.getElementsByTagName('*'), a = [];
for(var i=0,l=x.length; i<l; i++){
var t = x[i];
if(t.className === className){
a.push(t);
}
return a;
}
return false;
}
}
/* console.log(N('attribute3')[0].value);
or
console.log(cN('inputField')[2].firstChild.value);
*/
}
//]]>
当然,第二个评论console.log
取决于您的.firstChild
是否真的是元素,而不是文本节点。
如果您希望表单上的每个文本元素的值,使用上面的代码,您可以这样做:
function getTextInputVals(formElement){
var els = formElement.elements, a = [];
for(var i=0,l=els.length; i<l; i++){
var e = els[i];
if(e.type === 'text'){
a.push(e.value);
}
}
return a;
}
// console.log(getTextInputVals(doc.form[0]));
答案 4 :(得分:0)
我已经尝试了以下方法并且它有效..谢谢快速回复
function analyseFreetextField() {
var fieldValue = "";
var fieldName = "";
var inp = document.getElementsByTagName('td');
for (var i = 0; i < inp.length; i ++) {
if (inp[i].className == 'inputField') {
if (inp[i].childElementCount == 1 && inp[i].firstElementChild.type == 'text' ) {
fieldName = inp[i].firstElementChild.name;
fieldValue = inp[i].firstElementChild.value;
if (!alphanumeric(fieldValue)) {
alert('Invalid value detected' + fieldValue);
}
}
}
}
}