我试图找出一种方法来更改名为输入字段的 ajax 的最大长度,方法是将值拉出字段标签并更新默认值。字段标签都遵循相同的格式 - id、class、type 和 maxlength。要设置的新 maxlength 值始终存在于 id ...max_X_characters...
`<input id="ecwid-productoption-16958710-Line_5_:0028max_4_characters:0029" class="gwt-
TextBox ecwid-productBrowser-details-optionTextField ecwid-productoption-
Line_5_:0028max_4_characters:0029" type="text" maxlength="200"></input>`
所以在这个例子中,我需要将 maxlength 设置为 4。
另一个问题是有多个输入字段,通常具有不同的 maxlength 值。有关示例,请参见此处。
我正在考虑设置一个脚本以在字段加载后提取值,但我不介意承认,这已经超出了我的想象 - 希望你们中的一个聪明人能弄清楚!
更新:感谢您的建议,我已经尝试了两种不同的组合,但无法让它们工作。
这是 Ecwid 的技术团队建议的代码,它将页面上的所有输入字段设置为一个最大长度(在本例中为 6)
`Ecwid.OnPageLoaded.add(function(page){if (page.type == "PRODUCT") {
$("input.ecwid-productBrowser-details-optionTextField").attr('maxlength','6');
};
})`
但是,正如我所说,某些产品的输入字段具有不同的最大长度。
根据您的建议,我尝试用一个函数替换上面的“6”,以从输入 ID 中获取最大长度,但无法使其正常工作。
还有什么想法吗?
谢谢
更新:
破解它(几乎),这是工作代码
`Ecwid.OnPageLoaded.add(function(page){
var regex = new RegExp("max_(\\d+)_characters");
var inputs = document.getElementsByTagName("input");
for (var i = 0; i < inputs.length; i++) {
var inp = inputs[i];
if (regex.test(inp.id)) {
var newLimit = inp.id.match(regex)[1];
inp.maxLength = newLimit;
}
}
});`
非常感谢您的帮助,它在产品页面上就像一个梦想,但在另一个领域它没有。客户可以从购物篮中通过弹出窗口编辑输入文本。
这些字段具有类似的代码:
`<input id="ecwid-productoption-16958710-Line_5_:0028max_4_characters:0029"
class="gwt-TextBox ecwid-productBrowser-details-optionTextField ecwid-productoption-
Line_5_:0028max_4_characters:0029" type="text" maxlength="200"></input>`
非常欢迎提出建议
克里斯
更新:
非常感谢 ExpertSystem(你是天才!) - 我想我们已经做到了。(在 IE10、firefox 21、chrome 27 上测试)。
下面的代码适用于同时使用 Yola 和 Ecwid 的人,但我猜原始代码可能适用于使用其他网站构建器的人。它通过检查输入字段标题中的数字(在本例中为“max”和“characters”之间的值)并将其替换为字段的 maxLength 值来限制用户可以在 Ecwid 中输入输入字段的字符数. 它限制了产品浏览器、html 小部件和购物车弹出窗口中的字段。
这里是:
转到 Yola 的自定义站点跟踪代码部分。在“页脚代码”列(实际上位于“正文”的底部)中,放置以下代码:
<script>
Ecwid.OnPageLoaded.add(function(page){
var regex = new RegExp("max_(\\d+)_characters");
var inputs = document.getElementsByTagName("input");
for (var i = 0; i < inputs.length; i++) {
var inp = inputs[i];
if (regex.test(inp.id)) {
var newLimit = inp.id.match(regex)[1];
inp.maxLength = newLimit;
}
}
});
</script>
<script>
var regex = new RegExp("max_(\\d+)_characters");
function fixMaxLength(container) {
var inputs = container.getElementsByTagName("input");
for (var i = 0; i < inputs.length; i++) {
var inp = inputs[i];
if (regex.test(inp.id)) {
var newLimit = inp.id.match(regex)[1];
inp.maxLength = newLimit;
}
}
};
</script>
并将其放入“标题代码”列:
<script>
document.addEventListener("DOMNodeInserted", function() {
var popups = document.getElementsByClassName("popupContent");
for (var i = 0; i < popups.length; i++) {
fixMaxLength(popups[i]);
}
});
</script>
就是这样!你可以走了。