SyntaxError:应为表达式,得到''Jquery
SyntaxError: expected expression, got '.' Jquery
当复选框被选中时,我正试图更改文本框的文本,但我在控制台上收到了这个错误
SyntaxError:应为表达式,实际为"。"
这可能很简单,但我无法理解
HTML
<input type="checkbox" name="pgManageCS:frmManageCS:pbSettings:pbsDupeMatch:pbsiDupeMatch:chkwebsiteDomain" id="pgManageCS:frmManageCS:pbSettings:pbsDupeMatch:pbsiDupeMatch:chkwebsiteDomain">
<input id="pgManageCS:frmManageCS:pbSettings:pbsDupeMatch:icConvMatchFieldInLeadForAccount" type="text" value="Company" size="20" name="pgManageCS:frmManageCS:pbSettings:pbsDupeMatch:icConvMatchFieldInLeadForAccount" maxlength="80">
Javascript
$(document).ready(function () {
$('#pgManageCS:frmManageCS:pbSettings:pbsDupeMatch:pbsiDupeMatch:chkwebsiteDomain').change(function() {
if ('#pgManageCS:frmManageCS:pbSettings:pbsDupeMatch:pbsiDupeMatch:chkwebsiteDomain').is(':checked')) {
$('#pgManageCS:frmManageCS:pbSettings:pbsDupeMatch:icConvMatchFieldInLead').val('Website_Domain__c');
}
else{
$('#pgManageCS:frmManageCS:pbSettings:pbsDupeMatch:icConvMatchFieldInLead').val('Company');
}
});
});
JSFiddle
除了if
条件中缺少$(
之外,您在id
中使用的字符(冒号)对CSS中的简单id选择器无效(例如,#xxx
类型);详细信息。jQuery可能会让您逃脱惩罚(尽管我会感到相当惊讶),但它是无效的,因此在任何dot版本中都可能更改。
您可以使用属性选择器:
$("[id=pgManageCS:frmManageCS:pbSettings:pbsDupeMatch:pbsiDupeMatch:chkwebsiteDomain]")...
或者逃离所有这些冒号。
此外,您可以在change
处理程序中使用this.checked
,并使用条件运算符而不是if/else
:
$(document).ready(function () {
$('[id="pgManageCS:frmManageCS:pbSettings:pbsDupeMatch:pbsiDupeMatch:chkwebsiteDomain"]').change(function() {
$('[id="pgManageCS:frmManageCS:pbSettings:pbsDupeMatch:icConvMatchFieldInLead"]').val(
this.checked ? 'Website_Domain__c' : 'Company'
);
});
});
实时副本:
$(document).ready(function () {
$('[id="pgManageCS:frmManageCS:pbSettings:pbsDupeMatch:pbsiDupeMatch:chkwebsiteDomain"]').change(function() {
$('[id="pgManageCS:frmManageCS:pbSettings:pbsDupeMatch:icConvMatchFieldInLead"]').val(
this.checked ? 'Website_Domain__c' : 'Company'
);
});
});
<label>
<input type="checkbox" id="pgManageCS:frmManageCS:pbSettings:pbsDupeMatch:pbsiDupeMatch:chkwebsiteDomain"> The checkbox
</label>
<br>
The input: <input type="text" id="pgManageCS:frmManageCS:pbSettings:pbsDupeMatch:icConvMatchFieldInLead">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
您的代码中有两个问题:
1) 在构建选择器时,您需要转义特殊字符
2) if条件中缺少jquery选择器。
还可以缩小代码的范围,使用$(this)
来使用当前单击的对象的上下文
$('[id="pgManageCS:frmManageCS:pbSettings:pbsDupeMatch:pbsiDupeMatch:chkwebsiteDomain"]').change(function() {
if( $(this).is(':checked')) {
$(this).next().val('Website_Domain__c');
}
else{
$(this).next().val('Company');
}
});
工作演示
if ('#pgManageCS:frmManageCS:pbSettings:pbsDupeMatch:pbsiDupeMatch:chkwebsiteDomain').is(':checked'))
是你的问题,应该是
if ($('#pgManageCS:frmManageCS:pbSettings:pbsDupeMatch:pbsiDupeMatch:chkwebsiteDomain').is(':checked'))
我建议您使用类似JSHint 的linter
相关文章:
- 我能得到所有以“”开头的属性吗;关于“;使用jquery
- 在我的 jquery 函数中得到一个错误
- 如何用jQuery捕捉ajax是否得到了错误的响应类型
- Jquery validation if checkbox checked text box得到class=“”;表单输
- 得到"parserror”;在jquery ajax中
- SyntaxError:应为表达式,得到''Jquery
- 当使用严格的DOCTyPE定义时,jQuery可拖动性得到扩展
- 类似系统:循环形成唯一id,得到这些id'使用jQuery/Javascript单独发布
- jQuery Ajax得到错误No Transport,状态为0
- 我怎样才能得到这个“;搜索栏”;使用jquery
- 当我尝试使用jquery获取iframe的内容时,我得到了错误.请帮我解决
- jquery:动态删除内容后求和得到NaN
- 我怎样才能得到 innerhtml,除了它的子 Jquery 之一
- Jquery 得到 x 个第一元素的总高度
- jQuery得到parsererror,但Perl的状态是200
- jQuery得到html5数据值的变化
- jQuery -得到字符按-不管键盘
- jQuery得到一个文本,但没有html
- Jquery得到里面的文本<
- 使用Javascript/jQuery得到一个奇怪的错误