0

很长一段时间以来,我一直在尝试让一个简单的 .click jquery 方法在我的 c# 站点中工作。我只是想让它调用我的控制器中的一个函数,但我似乎无法点击任何按钮来注册。其中的调用与另一个可以正常工作的控件的 .change() 函数非常相似。

有问题的jQuery方法:

$('#addUserButton').click(function () {
            var e = document.getElementById('searchDDL');
            var itemText = e.options[e.selectedIndex].text;
            var url = encodeURI('@Url.Action("AddUser")' + "?User=" + itemText);
        });

用于触发上述功能的按钮的 HTML:

<button id="addUserButton" type="button" value="addUser">&gt;</button>

我已经研究并尝试过的一些事情:

  • 从 .click() 方法更改为 .live("click", etc) 方法没有任何区别。
  • 我看到设置按钮type="submit" 会有问题,所以我把它改成了"button"。
  • 我确保将它包含在 document.ready() 中 - 在研究其他问题之前我已经这样做了。

我在这里为这个问题创建了一个 jsfiddle 。我不得不删除很多敏感信息,所以页面没有完全充实。它适用于内部应用程序,只需要与 IE 一起使用。

编辑: 下面我添加了我试图在我的控制器中调用的函数;其他海报已经验证 jquery 可以按预期工作,所以我倾向于相信这与我的 c# 有关。

public ActionResult AddUser(string User)
    {
        //numUsers = App.NumberUsers + 1;
        selectedUsers.Add(User);
        return RedirectToAction("ApplicationForm");
    }
4

3 回答 3

1

您是否尝试过调试您的功能,甚至在其中添加警报以充实正在发生的事情。

$('#addUserButton').click(function () {
alert("FUNCTION IS GETTING CALLED ON CLICK EVENT");
            var e = document.getElementById('searchDDL');
alert(e);
            var itemText = e.options[e.selectedIndex].text;
alert(itemText);
            var url = encodeURI('@Url.Action("AddUser")' + "?User=" + itemText);
alert(url);
        });

看起来您的函数在获取 URL 后没有发出 AJAX 请求。

于 2013-07-08T14:25:20.387 回答
0

这不是像额外的右>括号那样愚蠢的东西吗?

<button id="addUserButton" type="button" value="addUser">></button>
于 2013-07-08T14:59:32.760 回答
0

从您的JSFiddle看来,您不包括jQuery.

它位于 JSFiddle 的左上角。

我已经更新了小提琴工作正常。请记住您包含jQuery,因此请尝试利用其功能并保留 Javascript。

于 2013-07-08T15:12:10.730 回答