使用javascript生成表单是否需要字段?
我有一个表单,它使用javascript文件使用javascript生成表单是否需要字段?,javascript,html,forms,validation,Javascript,Html,Forms,Validation,我有一个表单,它使用javascript文件items.js添加新项目。因此,每次使用form.php并单击“添加项目”按钮时,就会显示新行字段以添加详细信息 例如,下面的一些代码用于添加字段项名称 newCell = newRow.insertCell(3); newCell.innerHTML = '<input class="item_text_area item_name" type="text" name="0_item_' + new_item + '" id="0_item_
items.js
添加新项目。因此,每次使用form.php
并单击“添加项目”按钮时,就会显示新行字段以添加详细信息
例如,下面的一些代码用于添加字段项名称
newCell = newRow.insertCell(3);
newCell.innerHTML = '<input class="item_text_area item_name" type="text" name="0_item_' + new_item + '" id="0_item_' + new_items + '" size="20" maxlength="250" />';
newCell=newRow.insertCell(3);
newCell.innerHTML='';
如何编辑此.js
文件以使项目名称字段成为必填字段
如果您有任何帮助,我们将不胜感激。您可以使用jquery进行此操作。将类(在本例中为“requiredAttr”)添加到必填字段,然后在表单提交时进行验证
<form onsubmit="return validate();">
First Name*: <input class="requiredAttr" type="text" /><br/>
Last Name: <input type="text" /><br/>
<input type="submit" />
</form>
function validate(){
$(".requiredAttr").each(function(){
if($(this).val().length < 1){
alert("please fill in all the required fields.");
$(this).focus();
return false;
}
else{
return true;
}
});
return false;
}
名字*:
姓氏:
函数验证(){
$(“.requiredAttr”)。每个(函数(){
if($(this).val().length<1){
警告(“请填写所有必填字段”);
$(this.focus();
返回false;
}
否则{
返回true;
}
});
返回false;
}
这是一把小提琴。它还将重点放在验证警报后的第一个未填充字段上:
每辆吉普车:由于您无法确定用户提交了多少项,因此我会选择一种方法,其中所有新项都有唯一的类,例如
dynamicaddedpitems
正如Jeeven已经说过的,如果表单标记返回false
,您可以将以下内容添加到表单标记中,以防止其提交
<form onsubmit="return validate();"></form>
使用javascript:
function validate(){
var elems = document.getElementsByClassName( 'dynamicAddedItems' );
var allgood = true;
//Loop through all elements with this class
for( var i = 0; i < elems.length; i++ ) {
if( !elems[i].value || !elems[i].value.length ) {
elems[i].className += " error";
allgood = false;
} else {
elems[i].className = "item_text_area item_name dynamicAddedItems";
}
}
//If any element did not meet the requirements, prevent it from being submitted and display an alert
if( !allgood ) {
alert( "Please fill in all the required fields." );
return false;
}
//Otherwise submit the form
return true;
}
函数验证(){
var elems=document.getElementsByClassName('dynamicAddedItems');
var allgood=true;
//使用该类遍历所有元素
对于(变量i=0;i
如果字段为空,此脚本将添加错误类,并阻止提交表单。如何显示具有此类字段取决于您。您是想添加某种警报,还是只是想向用户指出它是必填字段?对于表单的其余部分,如果没有使用items.js,我可以添加class=“blah required”它将停止提交表单,同时让用户知道特定字段是必需的。我希望表单的.js部分也这样做。-1如果用户没有声明他们使用jQuery,则需要使用“原始”javascript的答案。如果你把所有相关的代码也放在你的答案中,那就太好了,因为JSFIDLE要到永远才可用。@Sumurai8首先OP没有提到他没有使用jquery。第二,如果有更好/更容易/更快的方法做某事,指出它总是一件好事。这就是为什么我们都在这里,提供帮助。关于JSFIDLE,最好使用一个工作示例。这不应该永远在这里。如果你认为JSFIDLE永远不会出现,那么你为什么会这样认为呢?请将鼠标悬停在javascript标记上。@Sumurai8 javascript文件,一个.js文件。伙计,我想知道jquery文件使用什么扩展名。它是否可以一直使用到永远都没有关系。如果没有jsfiddle,您的答案对于其他有相同问题的人来说毫无价值。很有可能,jsfiddle最终会清理所有未使用的jsfiddle,这意味着您的答案将大部分消失。JSFIDLE应该是一个添加项。@axon111请使用“注释”部分提出改进建议(只要您有权添加注释)。您添加的break语句将防止所有错误的字段高亮显示,这不是代码应该使用的方式。