Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/430.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_Jquery_Html_Css_Validation - Fatal编程技术网

Javascript 如果客户端验证文本相同并显示,如何不显示服务器端验证消息?

Javascript 如果客户端验证文本相同并显示,如何不显示服务器端验证消息?,javascript,jquery,html,css,validation,Javascript,Jquery,Html,Css,Validation,在下面的页面中,我有几个div的客户端类验证失败。中间的文本可以从div更改为div <div class="validation-failure">At least one of the above 2 fields needs to be entered</div> 需要输入上述两个字段中的至少一个 我也有服务器端验证错误显示在网站如下 <div id="messages_product_error_view"> <ul>

在下面的页面中,我有几个div的客户端类验证失败。中间的文本可以从div更改为div

<div class="validation-failure">At least one of the above 2 fields needs to be entered</div>
需要输入上述两个字段中的至少一个
我也有服务器端验证错误显示在网站如下

<div id="messages_product_error_view">
        <ul>
            <li>At least one of the above 2 fields needs to be entered</li>        </ul>
    </div>

  • 需要输入上述两个字段中的至少一个
现在我想确保当显示客户端验证并且文本与服务器端验证相同时,只显示客户端验证。但是,如果客户端验证错误为空div,则显示服务器端验证。我认为这可以通过jquery实现。。请帮忙

我想在div上显示任何文本时立即捕获

这就是正在发生的事情

当用户在输入字段上键入时,客户端js将启动并显示客户端js验证错误消息

然而,在一些罕见的情况下,他们能够绕过js,或者js验证是不正确的。因此,服务器端验证逻辑已经使用php实现

现在,当在输入字段中键入内容时,客户端验证开始生效。。如果用户按submit,服务器端validatiojn也会显示


我只想客户端出现。。如果客户端不存在,则显示服务器端…您建议的解决方案有效。。但在一个页面中,如果用户继续键入错误的输入,客户端站点验证消息会再次出现,而服务器端仍然存在。因此,需要以某种方式检测用户何时在输入上键入任何内容,然后如果显示客户端验证,则不显示服务器端

这两个div都是html格式,您说“消息”\u产品\u错误\u视图是服务器端,而“验证失败是客户端”?如果客户端验证已启动,为什么它会转到服务器端。客户端的目的是捕获这些错误,而不是导致回发。#消息(messages)产品(error)视图“文本是服务器端的,因为它是从phtml端的MVC php动态生成的。”#验证失败是由javascript生成的..嗨@Mike,好问题。。。代码有一点代码债务。。所以我想我所能做的就是不要问…我们正在实现服务器端验证,以便代码防御更强大。。然后我们将修复代码。我想说的是,您要么需要修复客户端验证,使其正常工作,要么需要删除它(注释掉)。如果您无论如何都在回发,那么您的客户端验证代码就没有任何用途。
var clientSide = $(".validation-failure");
var serverSide = $("#messages_product_error_view li");

if (serverSide.text() == clientSide.text()) {
    serverSide.hide();
    clientSide.show();
} else if (clientSide.text().length == 0) {
    serverSide.show();
    clientSide.hide();
}