Actually, I could probably set up a hidden field on the server side, edit the
value of it, depending on which button was clicked, and do a check based on
the value of the hidden field.
Thanks very much!
Dan Atkinson wrote:
>
> 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#a6387317
Sent from the JQuery mailing list archive at Nabble.com.
_______________________________________________
jQuery mailing list
[email protected]
http://jquery.com/discuss/