我的脚本没有运行。我使用的是错误的版本吗?

时间:2018-01-06 15:40:54

标签: javascript jquery

我在运行脚本时遇到了麻烦。当我点击发送按钮时,一条消息应该被发送到一个保存它的控制器,但似乎按钮不能正常工作,没有任何事情发生。我可以使用错误的JQuery版本吗?

这是我的.html脚本:

<input id="wallPostInputText" type="text" placeholder="Your message" />
    <input id="wallPostSubmit" type="button" value="Post" />
<script>
jQuery(function ($) {

    $(document).ready(function () {
        $("#wallPostSubmit").click(getMessageText);
    });

    function getMessageText() {
        var messageText = $("#wallPostInputText").val();

        $.ajax({
            url: '@Url.Action("AddMessage", "ApiMessage", new { httproute = "" })',
            type: "POST",
            data: JSON.stringify({
                MessageText: messageText,
                SenderId: @senderID,
                RecieverId: @receiverID
        }),
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function (data) {
                window.location.reload();
            }
        });
    }
});

这是我加载jquery的layout-html:

<script src="~/Scripts/jquery-3.2.1.min.js"></script>
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>

这里有什么问题?我已经试了好几个小时没有成功。

2 个答案:

答案 0 :(得分:0)

您似乎正在调用文档就绪函数两次,

使用jQuery(函数($))和另一个文档就绪。

尝试将其更改为:

<script>
  function getMessageText() {
    //Your code
  }
  jQuery(function ($) {
        //The document ready part goes here
        $("#wallPostSubmit").click(getMessageText);
      });
</script>

如果这不适合你,请发布完整的代码,以便我们尽力提供帮助。

同时确保&#34; Network&#34;如果您确实正在加载jquery.js

,请在浏览器上添加选项卡

答案 1 :(得分:0)

打开浏览器deverloper控制台,打开网络选项卡,重新加载页面。您对其中一个javascript文件有任何404或500响应吗?

jquery min可能未加载 - 删除了路径中的“〜/”

orientation: "bottom",
使用〜/启动文件路径可能会在500或404中解析 - 你最好坚持使用Scripts / jquery,或者更好:

<script src="Scripts/jquery-3.2.1.min.js"></script>

将您的Scripts文件夹放在站点文件夹的根目录下。