Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/409.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
Javascript 通过导航到其他地方阻止人们绕过我的表单验证_Javascript_Php_Jquery_Forms_Validation - Fatal编程技术网

Javascript 通过导航到其他地方阻止人们绕过我的表单验证

Javascript 通过导航到其他地方阻止人们绕过我的表单验证,javascript,php,jquery,forms,validation,Javascript,Php,Jquery,Forms,Validation,我有一个表单,允许用户在我的数据库中编辑项目数据。我要求每个项目都有一个附带的图片,因此我使用jQUery验证所需的规则验证itempic 当前,用户将选择一个项目,并在订单类别>子类别>项目>生成的表单中生成包含项目详细信息的表单。然后,用户可以删除现有项目pic并将其替换为新项目。但是,由于我将项目pic设为必需项目,如果不将删除的项目图片替换为新项目图片,他将无法提交表格 只有一个例外,此验证工作正常。删除项目图片后,如果用户单击我的导航栏并转到其他地方,他可以完全跳过验证。这会使我看到一

我有一个表单,允许用户在我的数据库中编辑项目数据。我要求每个项目都有一个附带的图片,因此我使用jQUery验证所需的规则验证itempic

当前,用户将选择一个项目,并在订单类别>子类别>项目>生成的表单中生成包含项目详细信息的表单。然后,用户可以删除现有项目pic并将其替换为新项目。但是,由于我将项目pic设为必需项目,如果不将删除的项目图片替换为新项目图片,他将无法提交表格

只有一个例外,此验证工作正常。删除项目图片后,如果用户单击我的导航栏并转到其他地方,他可以完全跳过验证。这会使我看到一个没有显示图片的项目,并在加载同一表单时导致错误,因为没有该项目的显示图片

有没有办法防止这种情况

PHP表单生成代码(摘录):


您需要重新思考您的流程,您当前的流程无法修复

问题是您允许第一个请求将服务器端记录置于无效状态。你不能那样做。不能保证用户会发出第二个请求,并且不能用JavaScript强制解决这个问题。如果用户只是关闭浏览器窗口,或者离开计算机,或者他们的Internet连接断开,该怎么办


我建议更改流程,以便用户可以在向服务器发出的单个请求中更换映像,而不是允许用户删除映像并添加新映像。

您需要重新考虑您的流程,您当前的流程无法修复

问题是您允许第一个请求将服务器端记录置于无效状态。你不能那样做。不能保证用户会发出第二个请求,并且不能用JavaScript强制解决这个问题。如果用户只是关闭浏览器窗口,或者离开计算机,或者他们的Internet连接断开,该怎么办


我建议更改流程,以便用户可以在向服务器发出的单个请求中更换映像,而不是允许用户删除映像并添加新映像。

您需要重新考虑您的流程,您当前的流程无法修复

问题是您允许第一个请求将服务器端记录置于无效状态。你不能那样做。不能保证用户会发出第二个请求,并且不能用JavaScript强制解决这个问题。如果用户只是关闭浏览器窗口,或者离开计算机,或者他们的Internet连接断开,该怎么办


我建议更改流程,以便用户可以在向服务器发出的单个请求中更换映像,而不是允许用户删除映像并添加新映像。

您需要重新考虑您的流程,您当前的流程无法修复

问题是您允许第一个请求将服务器端记录置于无效状态。你不能那样做。不能保证用户会发出第二个请求,并且不能用JavaScript强制解决这个问题。如果用户只是关闭浏览器窗口,或者离开计算机,或者他们的Internet连接断开,该怎么办


我建议更改流程,以便用户可以在向服务器发出的单个请求中替换映像,而不是允许他们删除映像并添加新映像。

是的,这就是我的想法。。。。在那个时候,这似乎也是一个相当不错的主意。。回到绘图板上,我去了。是的,这就是我想的。。。。在那个时候,这似乎也是一个相当不错的主意。。回到绘图板上,我去了。是的,这就是我想的。。。。在那个时候,这似乎也是一个相当不错的主意。。回到绘图板上,我去了。是的,这就是我想的。。。。在那个时候,这似乎也是一个相当不错的主意。。回到绘图板上,我去了。
//Input and preview for Display Pic
echo"<div class='BizEditItemDetails' >";
    echo"<label for='BizEditItemFileDP'>Upload Image[DP] &nbsp &nbsp&nbsp&nbsp(Max Size:2MB)</label>";
    echo"<input type='file' class='BizEditItemInput' id='BizEditItemFileDP' name='BizEditItemFileDP' />";
    echo"<input type='button' id=ImageCancelDP name=ImageCancelDP class='ImageCancelButton' value='Cancel'>";
    echo"<span></span>";
    echo"<br>";
    echo"<img id='ImagePreviewDP' name='ImagePreviewDP' class='ImagePreview' src=\"$dp\" > ";
    echo"<input type='hidden' id='ImagePreviewDPValidate' name='ImagePreviewDPValidate' value=\"$dp\" >";
    echo"<input type='hidden' id='DisplayDeleteItemID' name='DisplayDeleteItemID' value=$itemid>";
    echo"<input type='hidden' id='DisplayDeleteItemPicID' name='DisplayDeleteItemPicID' value=$dpid>";
    echo"<input type='hidden' id='DisplayDeleteFilePath' name='DisplayDeleteFilePath' value=$dpfilepath >";
    echo"<input type='button' id='DisplayDelete' name='DisplayDelete' class='ImageDeleteButton' value='Delete Picture'>";
    echo"<br>";
echo"</div>";
ImagePreviewDPValidate:{
            required:true
        },