我试图检查#textd
中的内容是否为空并且包含超过150个字符。如果是这样,我将其内容发送到另一个网页,如果不是,我显示相对于上下文的错误消息。我是用这些代码做的:
HTML code:
<a href="#" id="r"><span>AFD</span></a>
<div class="ooo" hidden>
<h4 id="titled">FOPJG?</h4>
</div>
<div>
<p id="textd"></p>
</div>
<button id="submitd">Submit</button>
</div>
Javascript / jQuery代码:
$("#r").click(function () {
$(".ooo").prop("hidden", false);
});
$("#submitd").click(function () {
if (!$("#textd").empty() && $("#textd").length() < 150) {
var str = $("#textd").text();
window.location.replace("foo?d="+str);
} else {
if (!$("#textd").empty() && $("#textd").length() > 150) {
$("#titled").html("FOPJG?<small style='color:red;'>not under 150 chars.</small>");
} else {
$("#titled").html("FOPJG?<small style='color:red;'>ABVQS.</small>");
}
}
});
这里的问题是,当我点击该提交按钮时,不会显示.ooo
。我还有另外一个问题,相对于上述算法的描述,此实现是否正常工作?
答案 0 :(得分:2)
夫妻俩:
style="display:none;"
而不是hidden
属性。它更标准。此外,您应该使用外部样式表代替所有样式,但那是另一场战斗。.empty()
删除元素中的所有内容 - 它不会以您期望的方式返回true / false。请改用.text().length
。return false;
(或e.preventDefault();
),以便链接不会去任何地方。所以,这里是:
HTML
<a href="#" id="r"><span>AFD</span></a>
<div class="ooo" style="display:none;">
<h4 id="titled">FOPJG?</h4>
</div>
<div>
<p id="textd">[ ... ]</p>
</div>
<button id="submitd">Submit</button>
的jQuery
$("#r").click(function () {
$(".ooo").show();
return false;
});
$("#submitd").click(function () {
if ($("#textd").text().length == 0) {
$("#titled").html("FOPJG?<small style='color:red;'> It's Empty</small>");
} else if ($("#textd").text().length < 150) {
$("#titled").html("FOPJG?<small style='color:red;'> Length is under 150 chars.</small>");
} else if ($("#textd").text().length) {
$("#titled").html("FOPJG?<small style='color:red;'> Length is over or exactly 150 chars.</small>");
}
return false;
});
答案 1 :(得分:1)
您应该使用visibility: hidden
代替html隐藏代码,以便在js中轻松更改其属性