选择Form中的元素不能在JQuery中工作

时间:2022-10-22 08:06:24

I have the following HTML form:

我有以下HTML表单:

<div id="main">
  <form Id="search-form" action="/ViewRecord/AllRecord" method="post">
    <div>
        <fieldset>
            <legend>Search</legend>
           <p>
                <label for="username">Staff name</label>
                <input id="username" name="username" type="text" value="" />
                <label for="softype"> software type</label>

                <input type="submit" value="Search" />
            </p>
        </fieldset>
    </div>
  </form>
</div>

And I want to show an alert box when the username field is clicked. This is my JQuery code:

并且我想在单击用户名字段时显示警告框。这是我的JQuery代码:

$(function() {
$("#username").click(function() {
        $.getJSON("ViewRecord/GetSoftwareChoice", {},
    function(data) {
        alert(data);
    });
    });
});

For certain reason the Click is never fired; anything I did wrong?

出于某种原因,Click永远不会被解雇;我做错了什么?

2 个解决方案

#1


Your code is correct and the event should be fired. Probably the problem is with AJAX call. Put an alert before the ajax call to make sure that this is indeed the problem.

您的代码是正确的,应该触发该事件。问题可能在于AJAX调用。在ajax调用之前发出警报以确保这确实是问题所在。

#2


You might want the focus event instead, as click will only fire if you explicitly click on the element:

您可能需要焦点事件,因为只有在您明确单击元素时才会触发click:

$(function() {
    $("#username").focus(function() {
        $.getJSON("ViewRecord/GetSoftwareChoice", {}, function(data) {
            alert(data);
        });
    });
});

Other than that, you might want to look in Firebug to make sure the request is completing successfully. Or, even better, you could use the lower-level $.ajax call to see if the request is not completing:

除此之外,您可能希望查看Firebug以确保请求成功完成。或者,更好的是,您可以使用较低级别的$ .ajax调用来查看请求是否未完成:

$(function() {
    $("#username").focus(function() {
        $.ajax({
            url: 'ViewRecord/GetSoftwareChoice',
            dataType: 'json',
            type: 'GET',
            success: function(data) { alert(data); },
            error: function() { alert('something went wrong!'); }
        });
    });
});    

#1


Your code is correct and the event should be fired. Probably the problem is with AJAX call. Put an alert before the ajax call to make sure that this is indeed the problem.

您的代码是正确的,应该触发该事件。问题可能在于AJAX调用。在ajax调用之前发出警报以确保这确实是问题所在。

#2


You might want the focus event instead, as click will only fire if you explicitly click on the element:

您可能需要焦点事件,因为只有在您明确单击元素时才会触发click:

$(function() {
    $("#username").focus(function() {
        $.getJSON("ViewRecord/GetSoftwareChoice", {}, function(data) {
            alert(data);
        });
    });
});

Other than that, you might want to look in Firebug to make sure the request is completing successfully. Or, even better, you could use the lower-level $.ajax call to see if the request is not completing:

除此之外,您可能希望查看Firebug以确保请求成功完成。或者,更好的是,您可以使用较低级别的$ .ajax调用来查看请求是否未完成:

$(function() {
    $("#username").focus(function() {
        $.ajax({
            url: 'ViewRecord/GetSoftwareChoice',
            dataType: 'json',
            type: 'GET',
            success: function(data) { alert(data); },
            error: function() { alert('something went wrong!'); }
        });
    });
});