我是javascript的新手。我有两个文本框
<asp:TextBox id="txtbox1" class="txt" runat="server" />
<asp:TextBox id="txtbox2" class="txt" runat="server" />
我在这里使用javascript验证,以便用户无法输入NULL值。我的javascript代码很好。按钮我正在使用此代码。
<asp:Button ID="btn_add" runat="server" OnClientClick="return validate();" OnClick="btn_add_Click" Text="Submit" />
现在,问题在于当用户将文本框留空并单击按钮时,会显示错误消息,然后用户更正错误并再次单击按钮,然后按钮不起作用。没有任何事情发生。
修改:我的javascript代码
<script type="text/javascript">
function validate()
{
var error = 0,value,a,q,i;
value = document.getElementsByClassName("txt");
for (i = 0; i < value.length; i++)
{
if (value[i].textContent == '')
{
document.getElementById("errmsg").innerHTML = "TextBox can't be blank";
error = 1;
break;
}
}
if (error == 0)
{ return true }
else { return false}
}
</script>`
答案 0 :(得分:2)
我被你的错误变量抛出,我原以为失败了。修复非常简单。您正在使用输入,textContent不是有效属性,因为文本没有嵌套在标记内(与div,p,textarea等不同)。
输入在属性中包含它们的内容,当用户修改输入时,值被更改并且有线索。您必须访问输入值。
<script type="text/javascript">
function validate()
{
var error = 0,value,a,q,i;
value = document.getElementsByClassName("txt");
for (i = 0; i < value.length; i++)
{
if (value[i].value == '')
{
document.getElementById("errmsg").innerHTML = "TextBox can't be blank";
error = 1;
break;
}
}
if (error == 0)
{ return true }
else { return false}
}
</script>`
<form action="form_action.php" method="get">
<div id="errmsg"></div>
<div>
<label>First name</label>
<input class="txt" type="text" name="fname" value="" />
<input type="submit" onclick="return validate()" value="Submit" />
</div>
</form>
如果您要将这段代码放在一点上,我会选择不使用内联函数赋值,并且如其他注释中所述,使用必需的标志,然后在DOMready上检查表单中的必填字段。
然后你可以按照自己的意愿处理它们,onSubmit,onChange。它将为您提供更多的灵活性。
PS。你必须告诉我这是做什么的...... var error = 1,value,a,q,i
答案 1 :(得分:0)
当用户移出文本框时我发现了这个。我通过错误。
<form name="forms.sample" novalidate>
<md-input-container class="md-block" flex-gt-sm>
<label>Name:</label>
<input ng-focus="focus=true" ng-blur="focus=false" style="width:400px;" class="form-control" name="Name" type="text" data-ng-model="Name" ng-pattern="SomePattern" required placeholder="enter the Name here" />
<div ng-messages for="forms.sample.Name.$error" ng-if="!focus">
<div ng-if='forms.sample.Name.$touched' ng-message="required">This is required.</div>
<div ng-if='forms.sample.Name.$touched' ng-message="pattern">Enter a valid domain name</div>
</div>
</md-input-container>
</form>