[英]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'> <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.x
和FormDuplicate.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.