【发布时间】:2010-06-05 17:52:52
【问题描述】:
我有一个使用验证的表单。此表格有一个用于上传照片的部分。最初,本节包含六个元素,代码如下:
<img class="photo_upload" src="image/app/photo_upload.jpg">
我已经为photo_upload 类的点击事件绑定了一个函数。此函数使用以下代码将图像替换为最小形式:
复制代码
<form onsubmit="startUploadImage();" target="control_target"
enctype="multipart/form-data" method="post" action="index.php">
<input type="hidden" value="add_image" name="service">
<input type="hidden" value="1000000" name="MAX_FILE_SIZE">
<input type="file" size="10" name="photo" id="photo_file_upload"><br>
<button onclick="javascript:cancel_photo_upload();return false;">Cancel</button>
</form>
因此,基本上,在单击图像后,我会在经过验证的原始表单中嵌套一个新表单。现在,当我使用这个新表单并上传图片时,我收到一条错误消息(重复了 3 次):
validator is undefined
http://host.com/path/index.php
Line 286
这里发生了什么?我的猜测是这样的
- 将事件气泡提交到外部表单
- 由于我们对该表单进行了验证,因此会触发验证,
- 验证试图找到触发它的表单,
- 由于我们没有将验证绑定到内部表单,它返回“未定义”
现在,我的评估是否正确?不管是不是,我该如何解决这个问题?
【问题讨论】:
标签: jquery validation dom-events event-bubbling