javascript - 语法错误 : expected expression, 得到 '.' Jquery

标签 javascript jquery

当选中复选框时,我试图更改文本框的文本,但在控制台上收到此错误

SyntaxError: expected expression, got '.'

这可能是非常简单的事情,但我无法弄清楚

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 类型); details 。 jQuery 可能 让你摆脱它(尽管我会相当惊讶),但它是无效的,因此可能会在任何点版本中更改。

您可以改用属性选择器:

$("[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>

关于javascript - 语法错误 : expected expression, 得到 '.' Jquery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28694386/

相关文章:

jquery - 关于崩溃事件的 Twitter Bootstrap 2

jquery - jQuery 中的选择器

javascript - 使用 React js Modal 的动态内容

javascript - 需要一些有关使用 getElementsByTagName 的建议

javascript - 在正则表达式的替换字符串中插入 $

javascript - Angular Controller 签名中的命名函数与非命名函数之间的区别

javascript - Jquery 自动提交不起作用

Jquery 3.0.0 与 Jquery Mobile 不兼容?

jquery - 评论表单的模态对话框示例?

javascript - 使用索引获取包含多行(div)的div中的值