Javascript form submit: Object doesn't support

2019-01-28 02:38发布

问题:

I'm trying to submit a form with javascript. Firefox works fine but IE complains that "Object doesn't support this property or method" on the submit line of this function:

function submitPGV(formName, action)
{
    var gvString = "";

    pgVisibilities.each(function(pair) {
        gvString += pair.key + ":" + pair.value + ",";
    });

    $('pgv_input').value = gvString;

    var form = $(formName);
    form.action = action;
    form.submit();
}

Called here:

<a href="javascript:submitPGV('ProductGroupVisibility','config/productgroupvis/save')">

Here's the form:

<form id="ProductGroupVisibility" action="save" method="post">
    <input type="hidden" name="ows_gv..PGV" id="pgv_input" value=""/>
</form>

Any ideas?

回答1:

Try checking the type of the element IE is selecting:

// For getting element with id you must use # 
alert( typeof( $( '#ProductGroupVisibility' )));

It is possible there is something else on the page with that ID that IE selects before the form.



回答2:

What name does your <input type="submit"> have?

If you called it "submit", you have overridden the form.submit() function, much the same way an input called "foo" would generate a form.foo property. That would explain the behavior.



回答3:

beware of any inputs in the form with name='submit', they break the javascript .submit() functionality!



回答4:

What javascript framework are you using? If it's jQuery I think you'll need to add # to your id:

$('#ProductGroupVisibility').submit();


回答5:

Are you sure you have your JavaScript library loaded? (jQuery or Prototype)

It worked for me in IE7 with Prototype.

Try:

alert($('ProductGroupVisibility').id)

See if you get an error.