2015-02-09 2 views
1

Я хотел бы изменить текстовое значение типа ввода, когда я использую файл типа ввода. Я пробовал следующий код, но я все еще не могу понять, как справиться с этой проблемой.Получить значение из файла типа ввода

HTML:

<input type="text" name="imagem" class="filename" value="<?php echo htmlentities($row_dados['imagem'], ENT_COMPAT, 'utf-8'); ?>" size="32" readonly /> 

<input type="file" name="id_imagem"> 

JS:

$('input[type="file"]').on('change', function (event, files, label) { 
var file_name = this.value.replace(/\\/g, '/').replace(/.*\//, '') 
$('input[type="text"].filename').value(file_name); 
}); 
+0

, значение которого вы хотите установить в текст? –

+0

Я исправляю несколько ошибок в коде, но все равно не работаю. То, что я хотел бы сделать, это получить значение из входного файла и сделать его отображаемым на входном тексте, значение, которое вводит входной текст, из базы данных. Mysql –

+0

Вы не можете, значение доступно только для чтения. Также чтение значения 'type =" file "' ограничено. Вы получите только «fakepath/filename.ext». – Teemu

ответ

0

Будьте осторожны, JQuery использует "VAL()" метод доступа к входных значений.

Я предполагаю, что у вас есть некоторые ошибки в консоли с вами сценария ..

Попробуйте с

$('input[type="file"].filename').val(file_name); 

В таким же образом, лучше получить значение файла с помощью следующего кода:

var file_name = $(this).val().replace(/\\/g, '/').replace(/.*\//, '') 
+0

О, это сработало, спасибо: P –

0

Если вы пытаетесь изменить значение поля , почему вы нацеливаете файл значение ?

Код будет выглядеть так:

/* Let's bind it just for the id_imagem, not the all input[type="file"] */ 
$('#id_imagem').bind 
(
    'change', 
    function(e) 
    { 
     /* Supposing your fields are inside a <form>, this notation will work */ 
     this.form.elements['imagem'].value = this.value.replace(/\\/g, '/').replace(/.*\//, ''); 
     return true; 
    } 
); 
Смежные вопросы