簡體   English   中英

Internet Explorer 和圖像提交

[英]Internet explorer and image submit

我有一個很大的表單,里面有多個(超過 100 個)提交按鈕。 我現在使用以下代碼:

<input type='image' src='../images/add.png' name='FormDuplicate' value='" . $resInvoices['iProjectID']. "'>

如果我單擊此圖像,它會在Chrome中完美運行,但在 IE(7 和 8)中則不行。 在 IE 中單擊時,甚至沒有傳遞名稱( FormDuplicate )。

當我快速谷歌時,我發現 IE 不會傳遞提交圖像的value 這讓我不得不使用多個 forms,但由於技術原因,我無法使用。 那么,我有哪些選擇?

謝謝。

關於評論的更新

這是完整的<tr>

<tr class='invoice-tr-standard' id='row2' onClick="FormTRClick(event, '2')"><td><input type='checkbox' name='strFormFactuur[]' value='19512' id='chk2'>&nbsp;<img src='../images/link.png' border='0'></td>

  <td><a href='project_details.php?projectID=19512' target='_blank'>Project</a></td>

  <td>Jobinfo</td>

  <td>Customer</td>

  <td><input type='text' name='FormTextStrPOnummer' value='324'> <img src='../images/b_save.png' border='0' height='13px' style='cursor: pointer;'></td>

  <td>€ <input type='text' name='FormTextFltBedrag'  value='999.000'> <img src='../images/b_save.png' border='0' height='13px' style='cursor: pointer;'></td>

  <td><img src='../images/b_save.png' border='0' height='13px' style='cursor: pointer;'> <input type='image' src='../images/toevoegen.png' border='0' style='float: right; cursor: pointer;' name='FormDupliceer' value='19512'></td>

</tr>

這是當前tr行的最后一個<td>元素:

<td><img src='../images/b_save.png' border='0' height='13px' style='cursor: pointer;'> <input type='image' src='../images/toevoegen.png' border='0' style='float: right; cursor: pointer;' name='FormDupliceer' value='19512'></td>

代碼未修改,顯示為 HTML 代碼。

IE 只會傳遞坐標,所以在 Request 集合中查找FormDuplicate.xFormDuplicate.y ,如果存在,則表示點擊了FormDuplicate圖片。

就像是:

if(isset($_POST['FormDuplicate.x'])) {
    //submitted by FormDuplicate
}

據我所知,其他瀏覽器也發送這個(除了發送值),所以它應該可以跨瀏覽器工作。

編輯:要保存並傳遞單擊圖像的值,請將此 JavaScript 代碼添加到頁面:

window.onload = function() {
    var arrInputs = document.getElementsByTagName("input");
    for (var i = 0; i < arrInputs.length; i++) {
        var oInput = arrInputs[i];
        if (oInput.type == "image") {
            oInput.onclick = function() {
                var oHidden = document.createElement("input");
                oHidden.type = "hidden";
                oHidden.name =this.name;
                oHidden.value = this.value;
                this.form.appendChild(oHidden);
                this.value = "";
            };
        }
    }
};

此代碼為圖像類型的所有輸入動態附加click事件處理程序,其中它將動態創建隱藏輸入,將其名稱分配給圖像輸入的名稱並將其值分配給圖像輸入值,然后將隱藏輸入分配給 append圖像的父形式,導致正確傳遞的值。
為了避免在 FF 或 Chrome 等瀏覽器中出現重復值,代碼會在附加隱藏元素后清除圖像輸入值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM