无法读取未定义的属性“ prop”

时间:2019-01-21 12:50:13

标签: javascript

我遇到了无法修复的错误。在我看来,这是一个非常简单的错误,但我无法修复。我做了一个表格。在此表单中,您必须单击输入(复选框)以接受隐私声明。然而,当单击时,之后便未单击。发生错误。

我已经在StackOverflow上进行搜索,以查看是否存在与我的问题有关的问题。但是所有被问到的问题都是关于React的。他们没有回答我的问题。我自己也调查了此错误。但是我无法修复它。

if (!$) {
  $ = jQuery;
}

function IsEmail(email) {
  var regex = /^([a-zA-Z0-9_.+-])+\@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]  {
  2,
  4
}) + $ / ;
return regex.test(email);
}

$(document).ready(function() {
  $('#dnSubmit').css({
    opacity: 0.3
  });
  $("input#dnAkkoord, input#vwAkkoord").on('click', function() {
    if ($(this).prop("checked")) {
      $("input#dnEmail, input#vwEmail").attr("placeholder", "Voer hier je e-mailadres in").prop("disabled", false);
      $("button#dnSubmit, button#vwSubmit").prop("disabled", false).css({
        opacity: 1
      });
    } else {
      $("input#dnEmail, input#vwEmail").attr("Vergeet niet eerst onze privacyverklaring te accoderen ...").prop("disabled", false);
      $("button#dnSubmit, button#vwSubmit").prop("disabled", true).css({
        opacity: 0.3
      });
    }
  });
});

我希望错误会消失。这将帮助我进一步处理表单。

1 个答案:

答案 0 :(得分:5)

您期望这返回什么?

.attr("Vergeet niet eerst onze privacyverklaring te accoderen ...")

使用单个参数,.attr()返回该属性的值。但是,您的元素似乎不太可能具有该名称的属性。即使这样做,该值仍然没有.prop()函数。

看一下上面的代码,看来您打算设置一个placeholder属性的值,然后该属性将返回一个jQuery对象:

.attr("placeholder", "Vergeet niet eerst onze privacyverklaring te accoderen ...")