Javascript document.getElementById始终在不应返回的位置返回空
应用程序使用laravel 5.8, 我要做的是得到所选的值, 选择是使用select2生成的 提取所选值的正确方法是什么?因为我总是得到空的值 观点:Javascript document.getElementById始终在不应返回的位置返回空,javascript,Javascript,应用程序使用laravel 5.8, 我要做的是得到所选的值, 选择是使用select2生成的 提取所选值的正确方法是什么?因为我总是得到空的值 观点: <div class="form-group"> <label> Select Industry </label> <select name="industryid" id="industryid" class="findIndustry js-example-responsive" style
<div class="form-group">
<label>
Select Industry
</label>
<select name="industryid" id="industryid" class="findIndustry js-example-responsive" style="width: 100%">
</select>
<script type="text/javascript">
$('.findIndustry').select2({
minimumResultsForSearch: 3,
ajax: {
url: '/cases/find_industry',
dataType: 'json',
delay: 250,
headers : {'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')},
processResults: function(industry) {
return {
results: $.map(industry, function(industry) {
return {
text: industry.sra_industry+' - '+industry.sra_description, id: industry.sra_industry } })
};
},
});
</script>
</div>
我尝试获取所选值的位置:
var one = document.getElementById("industryid");
var two = document.getElementById("industryid").value;
// i trigger from some button
function reply_click()
{
console.log(one);
console.log(two);
}
console.log(one) is responding, but (two) always empty.
result log below..
console.log(one) :
<select name="industryid" id="industryid" class="findIndustry js-example-responsive select2-hidden-accessible" style="width: 100%" data-select2-id="industryid" tabindex="-1" aria-hidden="true">`enter code here`
<option value="EFEK" data-select2-id="19">EFEK - Sector Company</option><
/select>
console.log(two) - empty :
///////////////////////
基于上面的示例,我想获取上面选择的值->option value=EFEK,并将其存储在var two中
谢谢执行脚本时,这两行代码立即运行:
var one = document.getElementById("industryid");
var two = document.getElementById("industryid").value;
这意味着,如果元素还不存在,那么其中一行将为null,第二行将失败。但是如果元素存在,例如,如果脚本在HTML中的select之后,您将在一个和两个中获得元素,因为select中没有选择任何内容
您希望稍后在处理单击时获取该值。由于getElementById非常非常快,因此也没有理由不这么做:
function reply_click()
{
console.log(document.getElementById("industryid").value);
}
您需要执行var two=document.getElementByIdindustryid.value;在reply\u click函数中,您以前运行过该代码。select2已加载选项,因此当您读取.value时,它们还不存在。修复!谢谢大家的见解和解释。不知何故,我没有想到这一点,将需要了解更多。