On Oct 17, 2008, at 11:22 PM, Hullah wrote:


I would think preventDefault() is the right way to do it too.

So, given that this isn't working like I would have thought it should,
did I code this incorrectly? Or is this something more serious like a
bug?

While I don't fully understand what you want to do, I suspect that what you need is the `triggerHandler` method. See <http://docs.jquery.com/Events/triggerHandler >.

Or... submit the form instead of clicking the button.





On Oct 17, 4:36 pm, Choan Gálvez <[EMAIL PROTECTED]> wrote:
On Oct 17, 2008, at 7:37 PM, ricardobeat wrote:



It should work... but in jQuery 'return false' is the standard cross-
browser way of preventing the default action anyway,

Not exactly.

- `preventDefault()` **is** the cross-browser way of preventing the
default action.

- `return false` prevents the default action and stops the event
propagation.



On Oct 16, 11:16 pm, Hullah <[EMAIL PROTECTED]> wrote:
I have a page with input textboxes and input buttons on it. All are
contained in a form.  I don't want the Enter button to submit the
form, so I call preventDefault() on all texboxes. I also don't want
the input button to submit the form, so I call preventDefault() on
the
input button.

But, if I call the button.click() event for when Enter is pressed
in a
textbox (to simulate a click on the button) it submits the form. It
seems as if something is not working like it should.

Now...if I "return false" instead of preventDefault(), it works as I
would expect.  But I would have thought that the purpose of
preventDefault() is to cancel the default action of the event, as in
this case to cancel form submission.

Any help with this is greatly appreciated! Following is some sample
code that exhibts the behavoir.

Thanks,
Hullah

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd";>
<html xmlns="http://www.w3.org/1999/xhtml";>
    <head>
        <title>Test</title>
        <script language="javascript" type="text/javascript"
src="jquery-1.2.6.js"></script>
        <script language="javascript" type="text/javascript">
          $(function() {
            $(":text").keypress(function(e) {
              if (e.which == 13) {
                e.preventDefault();
              }
            });
            $("#txt").keypress(function(e) {
              if (e.which == 13) {
                $("#btn").click();
              }
            });
            $("#btn").click(function(e) {
              e.preventDefault();
              alert("Button clicked");
            });
          });
        </script>
    </head>
    <body>
      <form method="post" action="test.html">
        <div>
          <input id="txt" type="text" />
          <input id="btn" type="submit" value="Submit" />
        </div>
      </form>
    </body>
</html>



Reply via email to