Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 动态加载表单上的事件_Jquery_Html_Forms - Fatal编程技术网

Jquery 动态加载表单上的事件

Jquery 动态加载表单上的事件,jquery,html,forms,Jquery,Html,Forms,我对加载的表单有问题。它不会触发任何事件。 以下是表格: <form id ="form1" method="post" action="newjsp.jsp"> <h2>Form1</h2> <p> <span style="margin-left: 4px">Number:</span> <input type="hidden" name="form_number" value="1"/> <input

我对加载的表单有问题。它不会触发任何事件。 以下是表格:

<form id ="form1" method="post" action="newjsp.jsp">
<h2>Form1</h2>
<p>
<span style="margin-left: 4px">Number:</span>
<input type="hidden" name="form_number" value="1"/>
<input class="textBox" type="text" name="number" value=""/>
</p>
<p>
<input id="the_button" type="submit" name="submit_button" value="Set"/>
</p>
</form>

表格1

编号:

我已经尝试了使用.on()、.live()和.delegate()的基本示例,但这些似乎都不起作用。我想验证数字是否为11位数。如果没有,请停止提交。 以下是jQuery:

$("#form1").submit(function e(){
if($(".textbox").length != 11)
    {
        e.preventDefault();
        $("#output").append("<p style='color:red;'>Please enter a valid number!</p>");
    }
});
$(“#form1”).submit(函数e(){
如果($(“.textbox”).length!=11)
{
e、 预防默认值();
$(“#输出”)。追加(

请输入有效数字!

); } });
谢谢

将“e”移到括号内,它就会工作:

$("#form1").submit(function(e){
if($(".textbox").length != 11)
    {
        e.preventDefault();
        $("#output").append("<p style='color:red;'>Please enter a valid number!</p>");
    }
});
$(“#表格1”)。提交(功能(e){
如果($(“.textbox”).length!=11)
{
e、 预防默认值();
$(“#输出”)。追加(

请输入有效数字!

); } });
将事件委派与
.on()
一起使用,因为表单是动态创建的。另外,
e
参数位于错误的位置,因此
preventDefault()
调用将失败

$(document).on('submit', '#form1', function(e){
    if($(".textBox").val().length != 11)
    {
        e.preventDefault();
        $("#output").append("<p style='color:red;'>Please enter a valid number!</p>");
    }
});
$(文档).on('submit','form1',函数(e){
if($(“.textBox”).val().length!=11)
{
e、 预防默认值();
$(“#输出”)。追加(

请输入有效数字!

); } });
您的
textBox
类名也有问题,在您使用
textBox
的形式中,但在Javascript中使用
textBox
。最后,使用
$('.textBox').val().length
获取长度而不是
$('.textBox').length
。后者只提供所选元素的数量,而不是输入值中的字符数量