2012-06-01 164 views
4

有沒有辦法從表單中的div元素獲取值而不是使用輸入?從div獲取價值。

我知道這是一個愚蠢的問題,但我只是想知道它是否可能。像PHP DOM的東西?

或者有沒有辦法可以改變div的輸入時,提交?

感謝,

+0

爲什麼沒有隱藏的Fileds – zod

+0

只是爲了學習的唯一目的。我想看看它是否可能,並從中吸取教訓。 – Brian

回答

5

使用JavaScript,你可以把div的內容爲(隱藏)輸入您提交表單權利之前。

它將大約是這樣的jQuery中:

$('#myForm').submit(function() { 
    $('#myHiddenInput').val($('#myDiv').html()); 
}); 

編輯:爲什麼你們在談論AJAX?在這種情況下不需要使用AJAX!

+0

內部$('#myForm')。submit();'是沒有必要的。只要函數不返回false或調用'e.preventDefault()',表單就會提交。如你所知,這將無限遞歸。 – paislee

+0

感謝您指出,我更新了我的代碼。 –

0

使用jQuery發佈div內的信息。很簡單,只需要幾行代碼。

2

PHP代碼是在服務器側進行處理,所以有主要可以是客戶端DOM的無PHP操縱。

使用JavaScript(用jQuery最簡單恕我直言)你可以拉出來的信息DOM的,它包括在表單提交的附加字段。

在SO上有很多關於如何使用jQuery添加表單提交的問題,例如,

Safari/JQUery - Insert and Update Hidden Field On Page

0

您可以將JavaScript文件中使用Ajax調用。你需要做的就是調用div id,例如$(「#yourdiv」)。val(); 這會給你任何在div id中的值。 如果您提供更具體的示例並顯示一些代碼,我可能會更具體。 吉姆

+0

將.val工作爲div或僅輸入 – zod

+0

您不能在div上使用val(),因爲它沒有...值。 –

+0

刪除此答案或者得到downvote – zod

0

有多種方式來archieve這一點。

隱藏字段

您可以創建隱藏的輸入字段使用JavaScript填補這些上提交

阿賈克斯

例如使用jQuery的AJAX庫序列化數據,並通過張貼AJAX

樣式輸入字段,以便它們看起來像你說一個股利布特

另一種選擇是隻使用輸入字段爲你使用到和他們的風格在某種程度上,他們不喜歡看投入了

讓我知道如果你需要任何的例子這些。

3

這裏是一個JavaScript解決方案沒有jQuery

<script> 

    function prepareSubmit() { 
     var payload = document.getElementById("target").innerHTML; 
     document.getElementById("divContents").value = payload; 
     return true; 
    }​ 

</script> 

標記:

<form name="test"> 
    <div id="target">Payload</div> 
    <input type="hidden" id="divContents" name="divContents" /> 
    <input type="submit" onclick="return prepareSubmit()" value="submit" /> 
</form>​ 

的onclick功能之前提交事件運行。實際上,除非prepareSubmit返回true,否則表單不會提交。它將div內容插入到隱藏的輸入中。我認爲這是最簡單的解決方案。確保腳本在表單之前加載。

+0

這也適用。謝謝。 – Brian

+0

將'prepareSubmit'放在窗體的'onsubmit'屬性中不是更好嗎?這樣,它將處理所有類型的提交,例如按下表單元素中的回車。 – RustyTheBoyRobot