首页 > 解决方案 > JS setCustomValidity 第一次不起作用

问题描述

我想为我的表单制作一条自定义有效性消息,但出现了一些问题。

单击两次后将显示有效性消息。如果我第一次没有输入正确的单词“text”,那么它将不再提交。我的代码有什么问题。

JS:

function a(){
	jQuery("#text")[0].setCustomValidity("");
 	if (jQuery("#text").val() == "text"){
    	   return confirm('sure?');
        }
	 jQuery("#text")[0].setCustomValidity("Incorrect");
         return false;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
 <form action="/" method="post" onsubmit="return a();">
    	<input type='text' id="text"/>
    	<input type="submit" value="submit"/>
  </form>

标签: javascriptjqueryhtml

解决方案


请尝试检查以下解决方案:

$(document).on('click',"#submit_btn", function()
{
     if($("#text").val() === "text")
    	   return confirm('sure?');
     else
	      $("#text")[0].setCustomValidity("Incorrect");
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
 <form action="/" method="post">
    	<input type='text' id="text"/>
    	<input type="submit" value="submit" id="submit_btn"/>
  </form>


推荐阅读