2013-10-18 73 views
0

是否可以在頁面中創建沒有輸入選擇器的HTML表單,並通過javascript創建這些「輸入」對象,然後提交它?我如何創建這些「項目」? 或者我是否必須始終創建任何「項目」以在HTML代碼中提交?代碼中沒有輸入選擇器的HTML表單

那麼,我可以避免創建惱人的隱藏輸入,以發送JavaScript變量?我真的不能找到任何教程或例子...

非常感謝您的幫助。

+1

我認爲你的意思是這樣的? http://stackoverflow.com/questions/1414713/creating-form-in-javascript-without-html-form – Jake

+0

是的,你可以像@Jake指出的那樣。爲什麼你必須首先發送javascript變量?告訴更多關於它的信息,看看我們能否以不同的方式提供幫助(提出其他方法)。 –

+0

如果您可以總結您正在嘗試做什麼,可以提供更好的解決方案。 –

回答

0

這樣,使用jquery

$('<form>', { 
    "id": "getInvoiceImage", 
    "html": '<input type="text" id="componentInvoicId" name="componentInvoicId" value="' + componentInvoiceId + '" />', 
    "action": window.siteRoot + 'ComponentInvoice/GetInvoiceImage/' 
}).appendTo(document.body).submit(); 

的更好的方法:

$.post(url, { value1: "foo", value2: "bar" }); 

,如果你堅持用形式做,這裏是廣義的功能,所以你可以通過它的json數據

var postRequest = function (uri, data) { 

    data = data || {}; 

    var form = $('<form method="post" class="js:hidden">').attr('action', uri); 

    $.each(data, function(name, value) { 
     var input = $('<input type="hidden">') 
      .attr('name', name) 
      .attr('value', value); 
     form.append(input); 
    }); 

    $('body').append(form); 
    form.submit(); 
}; 
+1

爲什麼追加?爲什麼要創造元素? – mplungjan

+0

好吧,你可以做ajax,但有時你實際上想要去其他頁面。它確保沒有其他事情發生。我個人從不使用它們。 – AwokeKnowing

+0

我現在看到Ajax和jQuery如何提供幫助,我喜歡你的第二個選項$ .post,因爲它符合我的想法,可以避免HTML中不必要的東西,但它不會像我更喜歡的那樣重定向頁面。無論如何,我現在有一個更好的理解,繼續瞭解它。謝謝你們所有人。 – davigueras

0

是的,這可以完成,即使完全沒有使用<form>。 (http://api.jquery.com)。例如,如果你想知道客戶端設備的寬度,你可以添加以下代碼:

$(document).ready(function() { 
    $.ajax({ 
     url: http://yourdomain.com/yourscript.php, 
     dataType: 'json', 
     type: 'POST', 
     data: { 
      w: $(window).width, 
      h: $(window).height 
     } 
    }); 
}); 

這將提交參數W和H您的應用程序,包含窗口的寬度和高度。只是一個例子。

相關問題