2015-04-30 173 views
4

我正在使用PHP的Yii框架,並且在清除或刪除textfield上傳的文件時出現問題。目前,它將刪除fileField中的內容,但無法刪除textfield。有任何想法嗎?從textField中清除或刪除文件

UPDATE 我現在可以清楚我的textField因爲我已經很難通過在input部分添加'class' => 'getName'加入$('.getFile').val("");我在HTML引用這個編碼我clearFileInputField功能。雖然這會清除數據,但它不會在保存後刪除文件。有什麼建議麼?

HTML

<div id = "clearContent"> 
      <?php echo $form->labelex($model,'info'); ?> 
      <?php echo $form->textfield($model,'info', array(placeholder => "No file chosen", readonly => true, 'class' => 'getName')); ?><br> 
      <?php echo $form->fileField($model,'info'); ?> 
      <?php echo $form->error($model,'info'); ?> 

      <input type="checkbox" onclick = "clearFileInputField('clearContent')" href="javascript:noAction();"> Remove File 
    </div> 

的JavaScript:

<script> 
    function clearFileInputField(tagId) { 
     document.getElementById(tagId).innerHTML = document.getElementById(tagId).innerHTML; 
     $('.getFile').val(""); 
    } 
</script> 
+0

您可以包括這個'div'的輸出由PHP作爲產生的?另外'textfield'是如何設置的,因爲它是隻讀的? – topher

+0

根據模型規則,您是否將'info'定義爲'allowEmpty'=> true? –

回答

2

我不知道如果我理解你正確遇到的問題。如果我完全理解了這個問題,請詳細說明,我會盡力改進我的答案。


如果要刪除文本的內容(value屬性)和文件輸入,您可以使用如下代碼:

// listen to the click on the #clearnbtn element 
document.getElementById('clearbtn').addEventListener('click', function() { 
    // Remove the value of the #foo and #bar elements 
    document.getElementById('foo').value = ""; 
    document.getElementById('bar').value = ""; 
}); 

如果您想刪除整個場你能做到這一點,像這樣:

// Retrieves the input element, gets its parents and removes itself from it 
var fooElement = document.getElementById('foo'); 
fooElement.parentElement.removeChild(fooElement) 

或者你可以父元素的innerHTML屬性設置爲空字符串('')。

document.getElementById('clearContent').innerHTML = ""; 

https://jsfiddle.net/osjk7umh/1/

+0

嗨@Mike Rombout,謝謝你的回答。但是,這並不是我正在尋找的。實質上,整個過程包括選擇文件,保存該文件,然後再編輯該文件。我已更新我的帖子,但我的主要問題是保存後無法刪除或刪除所選文件。在編輯模式下,它清除數據,但不保存。 – ChaseHardin

+0

所以你希望用戶能夠從服務器中刪除文件?在這種情況下,您可以使用['unlink()'](http://php.net/unlink)從服務器上刪除文件。 –