我在网站上输入了文本框,以允许个性化产品。
字段必须包含一些文本,但是某些客户可以通过输入空格并提交表单来解决此问题。这是一个问题,因为个性化设置不能留空,并且必须具有一些文本值,即使它只是点或连字符(例如)。
在文本框只有一个空格作为输入的唯一字符的情况下,如何防止提交表单?
因为是Shopify电子商务商店,所以代码是Liquid
<div class="personalisation_label">
<p>Type the personalisation you want below:</p>
</div>
<div class="personalisation">
<input type="text" name="properties[Line 1]" id="Line 1-0-0" maxlength="12" size="12">
<button type="submit" name="add" id="AddToCart" class="btn {{ btn_class }}{% if section.settings.enable_payment_button %} btn--secondary{% endif %}">
<span id="AddToCartText">{{ 'products.product.add_to_cart' | t }}</span>
</button>
</div>
HTML:
<button type="submit" name="add" id="AddToCart" onclick="return validate();" ... rest of the HTML
JavaScript:
function validate() {
var text = document.getElementById("Line 1-0-0").value;
if (!text.replace(/\s/g, '').length) {
return false;
}
return true;
}
感谢@ or-assayag,但这似乎阻止了空格的完全输入。我想允许用户能够在单词之间输入空格,而不仅仅是在文本框中输入空格作为唯一字符。
嘿,更新了我的答案,希望它能奏效。
谢谢@或-assayag。那应该很好
很高兴听到。很高兴能为您提供帮助,请投票并将答案标记为接受。谢谢,祝你好运:)
谢谢。最后一个问题。为了在用户仅在文本框中输入空格时向用户显示对话框消息,请执行以下正确操作:
code
function validate(){var text = document.getElementById(“ Line 1-0-0”)。value; 如果(!text.replace(/ \ s / g,'').length){警报(“此行不能留空”); 返回false;}返回true; }