JS onload 函数无法在 select 选项元素上使用目标 _self 或 _top [codeigniter3]
JS onload function not working using target _self or _top [codeigniter3] on select option element
我正在 codeigniter 中创建名为页面“review”的视图页面。并使用 JS onload
函数设置输入值。
我想在同一个窗口中加载页面。但是当我在 JS 代码中使用 window.open(url,'_self')
或 window.open(url,'_top')
时,未设置页面“review”上元素 <select>
中的输入值.
但是,当我使用 window.open(url,'_blank')
时,<select>
值已设置或正在工作
我该怎么办?
部分查看代码错误:
<div>
<label>gender</label>
<select id="gender" name="gender" required>
<option value="">- select -</option>
<option value="2">male</option>
<option value="3">female</option>
</select>
</div>
我的JS 代码放在页脚:
$(document).ready(function(){
$('.reviewBtn').click(function(){
var dt0 = $(this).data('trans_code');
var dt1 = $(this).data('status');
var dt2 = $(this).data('gender');
var pg1 = window.open('<?php echo base_url()?>trans/review/'+dt0,'_blank'); // input value set
// var pg1 = window.open('<?php echo base_url()?>trans/review/'+dt0,'_self'); // input value not set
pg1.onload = function(){
if ( dt1 == "2" ) { // rejected
pg1.document.getElementById('gender').value = dt2;
pg1.document.getElementById('gender').required = false; // user could change
} else {
pg1.document.getElementById('gender').value = dt2;
// user couldn't change
}
}
});
});
我的控制器
public function review($trans_code){
$data['value']= $this->model->get_data($trans_code)->result(); // value = var to set another input value in review page
$this->load->view('header');
$this->load->view('review',$data);
$this->load->view('footer');
}
终于解决了这个问题。我将 JS 代码分成两部分。首先,我将 JS 脚本 window.onload
移动到一个新页面 review。我使用 php 代码检索 性别值 ,foreach($value as $dt)
从 modal[=25 获取值=] 结果
window.onload = function(){
var dt0 = <?php echo $dt->trans_status?>;
var dt1 = <?php echo $dt->cust_gender?>;
if ( dt0 == "2" ) { // rejected
document.getElementById('gender').value = dt1;
document.getElementById('gender').required = false; // user could change
} else {
document.getElementById('gender').value = dt2;
// user couldn't change
}
}
第二,修改footer中的JS代码
$('.reviewBtn').click(function(){
var dt0 = $(this).data('trans_code');
window.open('<?php echo base_url()?>trans/review/'+dt0,'_self');
});
和<select>
值设置成功。
我正在 codeigniter 中创建名为页面“review”的视图页面。并使用 JS onload
函数设置输入值。
我想在同一个窗口中加载页面。但是当我在 JS 代码中使用 window.open(url,'_self')
或 window.open(url,'_top')
时,未设置页面“review”上元素 <select>
中的输入值.
但是,当我使用 window.open(url,'_blank')
<select>
值已设置或正在工作
我该怎么办?
部分查看代码错误:
<div>
<label>gender</label>
<select id="gender" name="gender" required>
<option value="">- select -</option>
<option value="2">male</option>
<option value="3">female</option>
</select>
</div>
我的JS 代码放在页脚:
$(document).ready(function(){
$('.reviewBtn').click(function(){
var dt0 = $(this).data('trans_code');
var dt1 = $(this).data('status');
var dt2 = $(this).data('gender');
var pg1 = window.open('<?php echo base_url()?>trans/review/'+dt0,'_blank'); // input value set
// var pg1 = window.open('<?php echo base_url()?>trans/review/'+dt0,'_self'); // input value not set
pg1.onload = function(){
if ( dt1 == "2" ) { // rejected
pg1.document.getElementById('gender').value = dt2;
pg1.document.getElementById('gender').required = false; // user could change
} else {
pg1.document.getElementById('gender').value = dt2;
// user couldn't change
}
}
});
});
我的控制器
public function review($trans_code){
$data['value']= $this->model->get_data($trans_code)->result(); // value = var to set another input value in review page
$this->load->view('header');
$this->load->view('review',$data);
$this->load->view('footer');
}
终于解决了这个问题。我将 JS 代码分成两部分。首先,我将 JS 脚本 window.onload
移动到一个新页面 review。我使用 php 代码检索 性别值 ,foreach($value as $dt)
从 modal[=25 获取值=] 结果
window.onload = function(){
var dt0 = <?php echo $dt->trans_status?>;
var dt1 = <?php echo $dt->cust_gender?>;
if ( dt0 == "2" ) { // rejected
document.getElementById('gender').value = dt1;
document.getElementById('gender').required = false; // user could change
} else {
document.getElementById('gender').value = dt2;
// user couldn't change
}
}
第二,修改footer中的JS代码
$('.reviewBtn').click(function(){
var dt0 = $(this).data('trans_code');
window.open('<?php echo base_url()?>trans/review/'+dt0,'_self');
});
和<select>
值设置成功。