我试图创建验证,如果用户留空提示它会给出错误,但是当我点击继续填充它没有显示它。
这是我的jquery代码。
$("#b1").click(function(){
var pr=prompt("enter new link address");
$("a").attr("href",pr);
if($("pr").val() == '')
{
var con1=confirm('Input can not be left blank');
if(con1==true)
{
var pr=prompt("enter new link address");
$("a").attr("href",pr);
}
else{
var conn=confirm('Input can not be blank');
}
}
});
这是我的HTML。
<a href="https://www.google.com">google</a>
<button id="b1">attribute(a)</button>
是否有人知道如何以正确的方式完成我的任务。谢谢您的时间。
答案 0 :(得分:1)
问题是因为pr
变量包含一个字符串。您尝试使用jQuery选择器来检索该变量并读取它的值。您根本不需要这样做,您可以直接读取该值。
另请注意,我建议您在用户输入上使用trim()
来检查用户是否只是几次点击空间。您也可以使用con1
值而不进行布尔等式检查。
最后,请注意,您可以重新组织逻辑以使流程循环(即,如果用户输入为空,并且他们单击“确定”消息,您可以再次启动该过程)。您可以通过将prompt()
逻辑放在其自己的函数中来执行此操作,该函数在需要时再次调用。试试这个:
$("#b1").click(requestLink);
function requestLink() {
var pr = prompt("enter new link address") || '';
$("a").attr("href", pr);
if (pr.trim() === '') {
var con1 = confirm('Input can not be left blank');
con1 && requestLink();
}
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<a href="https://www.google.com">google</a>
<button id="b1">attribute(a)</button>
&#13;
最后一件事;因为您希望用户键入一个URL并将其直接放入DOM中,我强烈建议您验证输入的内容实际上是一个URL。您可以按照this question上的说明进行操作。