【问题标题】:Getting a TypeError: $ is not a function script error获取 TypeError: $ is not a function script error
【发布时间】:2014-09-09 11:24:52
【问题描述】:

我正在尝试发送邮件,在 html 中使用 asp.net 中的 Web 服务并通过 jquery ajax 函数发送信息。 html表单如下。

<div class="col-md-6">
<h2>DROP ME A LINE</h2>                          
<!-- contact from -->
<form class="form" id="form" >
<input type="text" name="name" id="name" placeholder="Name" required/>
<input type="text" name="email" id="email" placeholder="Email" required/>
<textarea name="message" id="message" placeholder="Message" rows="8" ></textarea>
<input type="button" class="mt-button medium outline" name="submit" id="submit" value="Send Message" onclick="javascript: SendMail();">
                            </form> 
                                        <span class="sending">
                                            sending...
                                        </span>
                                        <div class="mess center">
                                        </div>  
                            <!-- contact from end-->
                        </div>

和javascript函数如下

<script type="text/javascript">


                function SendMail() {
                    var domain = location.host;
                    var serviceurl = location.protocol + "//" + domain + "/wp-content/themes/me_wp/mail/SendMail.asmx/SendUserMail";

                    var name = $("#name").val();
                    var fromMailId = $("#email").val();
                    var message = $("#message").val();


                    $.ajax({
                        url: serviceurl,
                        data: "{ 'name': '" + name + "','fromMailId': '" + fromMailId + "','message': '" + message + "' }",
                        dataType: "json",
                        type: "POST",
                        contentType: "application/json; charset=utf-8",
                        success: AjaxSuccess,
                        error: function (xmlHttpRequest, textStatus, errorThrown) {
                            alert(textStatus);
                            alert(errorThrown);
                        }
                    });
                }

function AjaxSuccess(response) {
    var result = response.d;
if(result ==true)
{
$('#sending').val("Thank you, message sent");
alert('mail sent');
}
}   
</div>
</div> 
</div>

当我尝试运行它时,我得到一个 类型错误:$ 不是函数 var name = $("#txtName").val(); 萤火虫中的脚本错误 谁能帮我解决这个问题。

【问题讨论】:

  • 在这段代码之前你有没有引用过jQuery?此外,您不会将值分配给 setter 方法,而是传递它们。我想你的意思是 $('#sending').val("Thank you, message sent") 在你的回调函数中。
  • 您是否在页面中包含了 jQuery 库或者是否使用了 jQuery.noConflict()
  • @George 是的,我在代码的其他地方使用过 Jquery,后者请忽略。
  • @ArunPJohny 是的,该库已包含在内。
  • @OsmanShareef 我认为错误出在您的 AjaxSuccess 方法中。您使用了 $(#sending.val()=......) 我认为这个引用不正确。您应该使用 $('.sending').val('谢谢,消息已发送'); “发送”是一个类,所以使用 (.) 而不是 #

标签: javascript jquery asp.net ajax


【解决方案1】:

在 $ 或 jQuery 调用之前验证您是否已加载 jQuery 库。你使用的是什么版本的库,你使用的是什么浏览器和版本?请记住,有两个不同的版本(jQuery 1 和 2)。

您的问题是“我收到 TypeError:$ is not a function var name = $("#txtName").val(); 脚本错误”,但在您发布的代码中,您没有有显示。您可以发布更多或全部代码吗?需要验证jQuery库的放置,还要看$("#txtName").val();来自...

【讨论】:

  • 这里不是评论区。
  • 矛盾本身。
  • 如果您想发表评论。回答几个问题。获得排名,然后继续发表评论。 :)
猜你喜欢
  • 2018-05-09
  • 2017-08-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-20
  • 2018-12-08
  • 1970-01-01
  • 1970-01-01
  • 2020-04-17
相关资源
最近更新 更多