繁体   English   中英

将值传递给隐藏的输入

[英]Passing value to hidden input

我不是javascript / jquery开发人员,但我必须处理它,因此请原谅这个愚蠢的问题。 我有一个允许javascript / jquery定制的软件,我需要将一些报告迁移到新版本。 在旧的软件版本中,此方法运行良好:

$("#prop input").val('asd').blur();

请注意,#prop是div ID(隐藏),其中包含我要填写的输入字段,此输入字段是我无法修改的软件对象,因此我需要使用此方法。 在新版本中,如果div可见,则上面编写的代码仍然有效,但在隐藏时不再起作用。 我在软件发行说明中发现,可能不再支持jquery,但仍支持javascript。 所以我试图更改我的代码:

document.getElementById('prop').value = 'asd';

但这不起作用。 如何在纯JavaScript中替换此说明? 也是为什么在div可见时旧的jquery命令仍然可以工作的原因

编辑:我认为这时有必要提供有关我的代码的更多信息。 它可能与我之前写的内容有所不同,但这是我需要修复的真实情况。 我认为主要问题是隐藏div上的blur方法,因为仅传递“ value”不足以触发其他操作。 如上所述,当未隐藏div dt1时,此代码可以正常工作。

var result = $("#valiDate").text();
var datelist = [];
datelist = result.split(",");
//document.getElementById("log").innerHTML =result.toString();
//update document property after selection
function datePicker_onSelect(selectedDate){
 //alert(selectedDate)
 $("#dt1 input").focus()
 $("#dt1 input").blur()
 //document.getElementById("dt1").innerHTML=selectedDate
}



pickerOptions = {
 altFormat: "dd/mm/yy",
 showOn: 'button', 
 buttonImageOnly: true, 
 buttonImage: 'https://cdn2.iconfinder.com/data/icons/metro-uinvert-dock/256/Calendar.png', 
 minDate: "-36M", maxDate: "+0D",
 changeMonth: true,
 changeYear: true,
 altField:"#dt1 input",
 onSelect:datePicker_onSelect,
 beforeShowDay: function(d) {
    // normalize the date for searching in array
    var dmy = "";
    dmy += ("00" + d.getDate()).slice(-2) + "/";
    dmy += ("00" + (d.getMonth() + 1)).slice(-2) + "/";
    dmy += d.getFullYear();
    if ($.inArray(dmy, datelist) >= 0) {
        return [true, ""];
    }
    else {
        return [false, ""];
        }
    }
 }

//create the date picker
document.getElementById('dt1picker').innerHTML="<input type='hidden' id='datePicker'>"
$("#datePicker").datepicker(pickerOptions);

我还要感谢所有贡献自己的用户。

试试这个。 这将首先获取元素,然后找到子input并设置值

document.getElementById('prop').querySelector('input').value = 'asd';

不要试图在同一条语句中设置值并执行blur() 当不可见时,可能是使用blur()导致jQuery失败的尝试。

var $propInput = $("#prop input");
$propInput.val('asd');
$propInput.blur();

在原始JavaScript中,

var propInput = document.querySelector("#prop input");
propInput.value = 'asd';
propInput.blur();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM