在javascript中需要更改隐藏输入字段的值
Inside javascript need to change value of a hidden input field
我已经尝试了一些事情,但它不工作。有人可以帮助我理解这个代码的问题。这是一个文件上传脚本。我用codeigniter。我的要求是用户上传文件后(工作现在),这些文件名应添加到隐藏字段。
<input type="hidden" name="extra_images" value="" />
<label for="deal_duration">Deal Extra Images</label>
<div id="uploads"></div>
<div class="dropzone" id="dropzone">Drop files here to upload</div>
<script type="text/javascript">
(function(){
var dropzone = document.getElementById('dropzone');
var uploads = new Array();
var hidden = document.getElementsByName('extra_images');
var displayUploads = function(data){
var uploads = document.getElementById('uploads'),
anchor,
x;
var errors = new Array();
for(x=0;x<data.length;x=x+1){
if((typeof(data[x].file) === 'undefined') && (typeof(data[x].error) != 'undefined'))
{
errors.push(data[x].error);
}
else
{
anchor = document.createElement('a');
anchor.href = 'http://localhost/project-cg/'+ data[x].file;
anchor.innerText = data[x].name;
anchor.target = '_blank';
uploads.appendChild(anchor);
uploads.push(data[x].data[x].name);
}
}
if(errors.length > 0){
alert(errors);
}
if(uploads.length > 0){
//This is what I tried so far.But its not working
hidden.value = uploads.join("|");
}
}
var upload = function(files){
var formData = new FormData(),
xhr = new XMLHttpRequest(),
x;
for(x=0;x<files.length;x=x+1){
formData.append('file[]',files[x]);
}
xhr.onload = function(){
var data = JSON.parse(this.responseText);
displayUploads(data);
}
xhr.open('post','http://localhost/project-cg/image_upload');
xhr.send(formData);
}
dropzone.ondrop = function(e){
e.preventDefault();
this.className = 'dropzone';
upload(e.dataTransfer.files);
}
dropzone.ondragover = function(){
this.className = 'dropzone dragover';
return false;
}
dropzone.ondragleave = function(){
this.className = 'dropzone';
return false;
}
}());
</script>
我发布数据后隐藏字段仍然为空
我看到你的错误了:
你有两个变量叫做uploads。一个是div的实例,另一个是数组。
你所做的基本上是分配一个新的类型每当你启动函数,最后你没有数组来提取数据。
var hidden = document.getElementsByName('extra_images'); // returns a list of nodes
试试这样写:
hidden[0].value = uploads.join("|");
看到mdn
相关文章:
- 隐藏和显示输入无效
- 如何在jquery ajax成功html响应中找到输入隐藏元素
- 根据文本字段中的用户输入隐藏/显示复选框
- 根据用户输入隐藏/显示 HTML 页面的某些部分
- 如何通过 JavaScript 设置输入隐藏字段的值
- Jquery为链接获取不同的输入隐藏值
- 输入隐藏don't运行onChange事件
- 如何使用JQueryFancybox2将嵌套输入隐藏子项的值获取到自定义内容中
- 如何使用javascript从输入隐藏类型设置输入类型文件中的值
- 如何仅存储特定的元素文本到输入隐藏值
- Jquery输入隐藏值未获取
- 如何从<输入隐藏>在后台代码
- 在提交表单之前将输入隐藏值替换为通过Ajax获取的值
- 在JavaScript中创建输入隐藏类型元素数组,并在Servlet中获取值,但java.lang.NullPointe
- 如何添加多值的输入隐藏
- 将Javascript输入隐藏字段的值设置为另一个输入文本字段中输入的值
- 使用 JQuery 获取输入隐藏值
- 当数量输入隐藏在复合产品中时,禁用woocommerce产品页面上的-/+按钮
- 使用jQuery data() vs原生javascript getAttribute vs输入隐藏
- HTML和Javascript -如何模拟禁用输入(隐藏插入符号)