Yes, that's a good idea!

How/what do you think I could pass something to the server though, to make
it know which button was clicked? It doesn't seem to matter which button I
run the click function on, it's always the same (first) one.


Christian Bach wrote:
> 
> I see, i guess i have to pay more attention :)
> 
> OK, how about this.
> 
> var submitType = false;
> $("your single form id").submit(function() {
>       if(submitType == "type1") {
>               // do something
>       } else if(submitType == "type2") {
>               // do something
>       } else {
>               return false;
>       }
> });
> $("#ctl00_contentPlc_txtPassword").keydown(function(e){
>       // set type
>       submitType = "type1";
>       // fire  submit.
>       $("your single form id").submit();
> });
> $("#ctl00_contentPlc_txtOtherPassword").keydown(function(e){
>       // set type
>       submitType = "type2";
>       // fire  submit.
>       $("your single form id").submit();
> });
> 
> /christian
> 
> 
> Dan Atkinson wrote:
>> Christian,
>> 
>> Thanks for the reply but, as I mentioned there is only one form on the
>> page,
>> and two submit buttons inside it.
>> 
>> Your code sample assumes that there is more than one form and wouldn't
>> work
>> on a single form.
>> 
>> 
>> 
>> Christian Bach wrote:
>>> 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/
>>>
>>>
>> 
> 
> 
> _______________________________________________
> jQuery mailing list
> [email protected]
> http://jquery.com/discuss/
> 
> 

-- 
View this message in context: 
http://www.nabble.com/Determine-which-textarea-had-focus-when-%27enter%27-was-pressed.-tf2298484.html#a6387215
Sent from the JQuery mailing list archive at Nabble.com.


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

Reply via email to