0

我正在使用 jQuery DatePicker 选择带有“#”的元素,当我将“直接”字符串放入选择器时一切正常,但是一旦我开始连接,结果就非常可疑。也许这个控制台屏幕截图解释了我正在努力解决的问题 在此处输入图像描述

HTML:

<input id="wizard:wizard-body:datePiece_picker" name="wizard:wizard-body:datePiece_picker" type="text" value="">

Javascript:

function replaceAll(str, find, replace) {
    return str.replace(new RegExp(find, "g"), replace);
}
var TYPEDIALOG = "wizard:wizard-body:";

var id = replaceAll(TYPEDIALOG, ":", "\\\\:")+ "datePiece_picker";
if ($("#" + id).length != 0) {
    $("#" + id).datepicker({
        dateFormat : "dd/mm/yy"
    });
}
4

1 回答 1

1

您的替换添加了太多反斜杠:

http://jsfiddle.net/BaypN/

var id = replaceAll(TYPEDIALOG, ":", "\\:") + "datePiece_picker";

作为旁注,这可能是避免:使用元素 ID 的一个很好的论据。此外,datePiece_picker可以是一个类而不是 id 的一部分。

于 2013-09-25T15:50:35.153 回答