使用JS为隐藏文本输入赋值

时间:2017-06-02 09:05:17

标签: javascript jsf

我是JavaScript的新手。

我有:

HTML:

<form>
<t:inputFileUpload required="true" id="upload" onchange="uploadOnChange()" />
<input id="filename" type="hidden" />
<h:commandButton class="btn btn-primary" value="Upload"
            action="#{controller.upload}" />
</form>

的javascript:

<script>
function uploadOnChange() {

document.getElementById('upload').onchange = name;

var filename = name;
var lastIndex = filename.lastIndexOf("\\");
if (lastIndex >= 0) {
    filename = filename.substring(lastIndex + 1);

document.getElementById('filename').value = filename;
}
</script>

我想要做的就是通过inputFileUpload,浏览我的目录,我选择的文件名,并将此名称作为字符串传递给jsf控制器。

有人可以帮助我吗?

编辑:

如果我添加到我的表单enctype="multipart/form-data,似乎控制器方法“上传”什么都不做。

1 个答案:

答案 0 :(得分:0)

假设<t:inputFileUpload>具有value属性,我会将代码更改为以下内容:

function uploadOnChange() {
  var filename = document.getElementById('upload').value;
  var lastIndex = filename.lastIndexOf("\\");
  if (lastIndex >= 0) {
    filename = filename.substring(lastIndex + 1);
    document.getElementById('filename').value = filename;
  }
  console.log('Value hidden input: ' + document.getElementById('filename').value);
}
<input type="file" required="true" id="upload" onchange="uploadOnChange()" />
<input id="filename" type="hidden" />