ian
ian

Reputation: 12335

javascript commands not all firing

I have a very simple JavaScript function:

function insertPost()
{
    document.postsong.submit()

    parent.document.getElementById('postSongButton').disabled = true;

}

Both commands in it work but only the first one will fire. This is true when they switch places also. Only the first one will fire...

Upvotes: 0

Views: 181

Answers (5)

Jose Basilio
Jose Basilio

Reputation: 51498

EDIT: On further inspection, I found that the real source of the problem is the line:

document.postsong.submit()

Here are the results of my tests in different browsers. If the line previous to the submit() is "button.disable = true", and the button type="submit":

  • Firefox disables the button and submits the form.
  • Chrome disables the button, but does not submit.
  • IE does not disable the button, but it does submit the form.

This explains the behavior you have been experiencing. Having parent before getElementById does not hurt anything, but it is not necessary. Change the code in your insertPost() function to this:

function insertPost(){
 document.getElementById("postSongButton").disabled = true;
 document.forms["postSong"].submit();
}

Upvotes: 2

Real Red.
Real Red.

Reputation: 5039

You are using parent.document.getElementById(...

Just check if you are referring to the button correctly. i.e. if the parent reference you are using is correct. i.e if the button is in same page as the form or in the parent.

And yes, first you have to disable the button and then trigger the submit action for the form. When you do it the other way, you might end up navigating away to a different page and the disabling line may never execute.

But, since you said, disabling doesn't work for you at all, I thought if you were using wrong reference. Did it give any javascript errors for you when you tried to disable it?

Upvotes: 0

Abhimanyu
Abhimanyu

Reputation: 369

on click of the button you are calling the funcion insertPost().so what you have to do first disabled the button and then submit the form.one think i didnt understand why are using parent of object.

function insertPost() {

parent.document.getElementById('postSongButton').disabled = true;
document.postsong.submit();

}

Upvotes: 1

Mark Dickinson
Mark Dickinson

Reputation: 6633

document.postsong.submit()

Submits the form, takes focus away from the function, function ends there

parent.document.getElementById('postSongButton').disabled = true;

Disables the button, so perhaps it is that there is then nothing to submit the form.

Not too sure if disabling the form button would stop the event from bubbling, but I suspect that the nature of these two lines will lead you to separating them, and having the second one in another event handler.

Hope this points you in the right direction.

Upvotes: 2

Binoj Antony
Binoj Antony

Reputation: 16196

Did you check the casing of the html element?

Upvotes: 1

Related Questions