在事件处理中将 javascript 转换为 jquery
Convert javascript to jquery on event handling
我有以下代码:
input.setOnkeypress("if (event.keyCode == 13)
{
document.getElementById('search_report_form:search_button').onclick();
return true;
}");
这是函数:
final class GroupsSelector extends BaseRenderablePanel<GroupsSelector> {
private GroupsSelector group(LabourInputReportCriteria.Level level) {
HtmlSelectBooleanCheckbox box = new HtmlSelectBooleanCheckbox();
boolean isSelected = selections.isGroupSelected(level);
box.setSelected(isSelected);
// box.setDisabled(isDaySelectedOnFirst(level));
box.setId("groupBy" + level.getClass().getSimpleName());
box.setOnclick("submit()");
box.addValueChangeListener(u.addExpressionValueChangeListener("#{reportSearchCriteriaModel.groupBy}"));
HtmlOutputText labelComponent = new HtmlOutputText();
labelComponent.setValue(getGroupSelectionValue(level));
tr().td();
html(box);
html(" ");
html(labelComponent);
endTd().endTr();
return this;
}
如果您想将前几行转换为 JQuery 然后试试这个
$('input').on('keypress', function(event){
if (event.keyCode == 13) {
$('[id="search_report_form:search_button"]').click(); //.submit();
return true;
}
});
首先,您 不需要 将其更改为 jQuery 如果它正常工作。添加 jQuery 到您的页面并不意味着 DOM 停止工作。如果它 不 工作,将您的 DOM 代码更改为等效的 jQuery 代码将不会使其 start 工作。
但是 jQuery 相当于
document.getElementById('search_report_form:search_button').onclick();
是
$('#search_report_form\3a search_button').click();
或更易读;
$('[id="search_report_form:search_button"]').click();
这里有点棘手的是 id
中有一个冒号 (:
),所以我们不能只用 #search_report_form:search_button
来查找它,因为冒号貌似是一个伪class的开头。所以我们必须逃避它。在 CSS 选择器中,您可以通过将其替换为反斜杠后跟其等效的十六进制来转义它。 :
的十六进制字符代码是3A,所以a
。要在字符串文字中写一个反斜杠,你必须写 两个 (第一个转义第二个)。你需要在它之后的 space 来终止它,因此 '#search_report_form\3a search_button'
.
第二种形式改为使用属性选择器,因为我们可以将 ID 放在引号中,而不必担心冒号。
我有以下代码:
input.setOnkeypress("if (event.keyCode == 13)
{
document.getElementById('search_report_form:search_button').onclick();
return true;
}");
这是函数:
final class GroupsSelector extends BaseRenderablePanel<GroupsSelector> {
private GroupsSelector group(LabourInputReportCriteria.Level level) {
HtmlSelectBooleanCheckbox box = new HtmlSelectBooleanCheckbox();
boolean isSelected = selections.isGroupSelected(level);
box.setSelected(isSelected);
// box.setDisabled(isDaySelectedOnFirst(level));
box.setId("groupBy" + level.getClass().getSimpleName());
box.setOnclick("submit()");
box.addValueChangeListener(u.addExpressionValueChangeListener("#{reportSearchCriteriaModel.groupBy}"));
HtmlOutputText labelComponent = new HtmlOutputText();
labelComponent.setValue(getGroupSelectionValue(level));
tr().td();
html(box);
html(" ");
html(labelComponent);
endTd().endTr();
return this;
}
如果您想将前几行转换为 JQuery 然后试试这个
$('input').on('keypress', function(event){
if (event.keyCode == 13) {
$('[id="search_report_form:search_button"]').click(); //.submit();
return true;
}
});
首先,您 不需要 将其更改为 jQuery 如果它正常工作。添加 jQuery 到您的页面并不意味着 DOM 停止工作。如果它 不 工作,将您的 DOM 代码更改为等效的 jQuery 代码将不会使其 start 工作。
但是 jQuery 相当于
document.getElementById('search_report_form:search_button').onclick();
是
$('#search_report_form\3a search_button').click();
或更易读;
$('[id="search_report_form:search_button"]').click();
这里有点棘手的是 id
中有一个冒号 (:
),所以我们不能只用 #search_report_form:search_button
来查找它,因为冒号貌似是一个伪class的开头。所以我们必须逃避它。在 CSS 选择器中,您可以通过将其替换为反斜杠后跟其等效的十六进制来转义它。 :
的十六进制字符代码是3A,所以a
。要在字符串文字中写一个反斜杠,你必须写 两个 (第一个转义第二个)。你需要在它之后的 space 来终止它,因此 '#search_report_form\3a search_button'
.
第二种形式改为使用属性选择器,因为我们可以将 ID 放在引号中,而不必担心冒号。