Hi,

let's say we have the following html i the page.

<form id="form1">
<input type="text" name="username" class="formItem"/>
</form>

<form id="form2">
<input type="text" name="username_again" class="formItem"/>
</form>

<script>
var currentForm = false;
var triggerKeyCode = 13;
$(document).ready(function() {
        $(".formItem").focus(function() {
                currentForm = $(this).parent();
        });
        $(this).keyDown(function(e) {
                if (!e) var e = window.event
                if (e.keyCode) code = e.keyCode;
                else if (e.which) code = e.which;
                
                
                if(currentForm && code == triggerKeyCode) {
                        currentForm.submit();
                }
        
        });
});

this is just of the top of my head, and is not tested!

Best regards
Christian


Dan Atkinson wrote:
> Hey all!
> 
> Ok, right to the point here!
> 
> I have a page in ASP.NET which has two sets of username and password boxes
> and two sets of submit buttons. Because it is ASP.NET, there can only be one
> form in a page.
> 
> The problem in a normal page is that, when the user presses enter on the
> keyboard, the first submit control is triggered. What if someone enters info
> in the second username and password boxes? Well, the page simply doesn't
> know which control the user was in when they hit enter.
> 
> So... I wrote something which determines which textbox the user was in when
> they pressed enter (keycode 13)
> 
> $(document).ready(function(){
>   $("#ctl00_contentPlc_txtPassword").keydown(function(){
>     //The user pressed a key in the password textarea
>     if ((event.which && event.which == 13) || (event.keyCode &&
> event.keyCode == 13))
>     {
>       //The user pressed enter. Check if the relevant textboxes are filled
> correctly. If not, show the error and return false
>       if (!CheckLogin())
>         return false;
>       else
>         //User has filled in the textboxes properly. Now simulate a click on
> the first button.
>         $("#ctl00_contentPlc_btnCheck").click();
>     }
>   });
> 
>   $("#ctl00_contentPlc_txtOtherPassword").keydown(function(){
>     //The user pressed a key in the password textarea
>     if ((event.which && event.which == 13) || (event.keyCode &&
> event.keyCode == 13))
>     {
>       //The user pressed enter. Check if the relevant textboxes are filled
> correctly. If not, show the error and return false
>       if (!CheckOtherLogin())
>         return false;
>       else
>         //User has filled in the textboxes properly. Now simulate a click on
> the first button.
>         $("#ctl00_contentPlc_btnOtherCheck").click();
>     }
>   });
> });
> 
> There is a problem however. The script works, but doesn't actually simulate
> a click on the second button. If I replace
> $("#ctl00_contentPlc_btnOtherCheck").click(); with alert("hello");, I'll get
> a lovely message come up when I press enter in the second password textarea.
> So this indicates to me that the script is working ok, but the button isn't
> being fired. The button exists and I can reference it, but I simply can't
> fire it.
> 
> I've also tried $("[EMAIL PROTECTED]").get(1).click(); but this doesn't
> work either (note, that the button is an image button).
> 
> Is there anyone who has had a similar problem and solved it?
> 
> Cheers,
> 
> Dan


_______________________________________________
jQuery mailing list
[email protected]
http://jquery.com/discuss/

Reply via email to