【问题标题】:form fill and submit without waiting for an event?无需等待事件即可填写并提交表单?
【发布时间】:2012-04-02 11:21:21
【问题描述】:

使用http://en.allexperts.com/q/Javascript-1520/create-form-submit-fly.htm 作为参考,我创建了以下表单,它可以通过onclick 事件或任何其他用户事件提交?有没有办法在页面加载时执行此操作,还是我必须始终等待用户事件?

<script>
var params = something
//helper function to create the form
function getNewSubmitForm(){
    var submitForm = document.createElement("FORM");
    document.body.appendChild(submitForm);
    submitForm.method = "POST";
    return submitForm;
}

//helper function to add elements to the form
function createNewFormElement(inputForm, elementName, elementValue){
    var newElement = document.createElement("<input name='"+elementName+"' type='hidden'>");
    inputForm.appendChild(newElement);
    newElement.value = elementValue;
    return newElement;
}
function createFormAndSubmit(){
    var submitForm = getNewSubmitForm();
    createNewFormElement(submitForm, "field1", params.data1);
    createNewFormElement(submitForm, "field2", params.data2);
    submitForm.name= "submitpost";
    submitForm.action= "some URL";
    submitForm.submit();
}
</script>

【问题讨论】:

  • 我已经通过使用 document.write 对其进行硬编码然后填充值来使其工作,但是对此的解决方案会很好,并且可能对其他人有所帮助......欢迎版主删除这篇文章,如果他们认为这是一个更好的选择...

标签: javascript forms events submit


【解决方案1】:

如果我理解正确,您想要执行以下操作。对吧?

 <script type="text/javascript" src="http://code.jquery.com/jquery-1.7.2.min.js"></script>
    <script type="text/javascript">

    $(document).ready(function(){
        var params = ["1","7"];
        createFormAndSubmit();

        //helper function to create the form
        function getNewSubmitForm(){
            var submitForm = document.createElement("FORM");
            document.body.appendChild(submitForm);
            submitForm.method = "POST";
            return submitForm;
        }

        //helper function to add elements to the form
        function createNewFormElement(inputForm, elementName, elementValue){
            var newElement = document.createElement("INPUT");
            newElement.name = elementName;
            newElement.type = 'hidden';
            newElement.value = elementValue;
            inputForm.appendChild(newElement); 
            return newElement;
        }

        function createFormAndSubmit(){
            var submitForm = getNewSubmitForm();
            createNewFormElement(submitForm, "field1", params[0]);
            createNewFormElement(submitForm, "field2", params[1]);
            submitForm.name= "submitpost";
            submitForm.action= "show.jsp";
            submitForm.submit();
        }

    });
    </script>

【讨论】:

  • 我不知道为什么,但这似乎不起作用。我觉得应该!但它没有......我之前确实尝试过:D显然无论如何你都必须等待用户事件。
  • 真的吗?对我来说,这无需等待某些用户事件即可工作。在加载包含此代码的页面时,表单会立即提交,我在另一个页面 show.jsp 中看到了结果。你的情况会怎样?
猜你喜欢
  • 1970-01-01
  • 2016-06-02
  • 1970-01-01
  • 2012-07-13
  • 2015-08-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多