我在opencart的视图文件中工作。我有2个文本框,分别设置日期和时间。我有一个复选框,检查时其值为1,未选中时为0。我想要的是,如果选中上面的复选框,则应隐藏日期和时间字段(直到现在为止)。如果未选中复选框,请将这些字段显示为他们现在(直到现在)。 目前的代码:
HTML
<tr id="row_ship_date">
<td>
Shipment Date:
</td>
<td>
<input type="text" id="ship_date" name="ship_date" class="date" onchange="getServices();" />
</td>
</tr>
<tr id="row_ship_time">
<td>
Shipment Time:
</td>
<td>
<input type="text" id="ship_time" name="ship_time" class="time" />
</td>
</tr>
<?php
if (isset($current_date_shipment) && $current_date_shipment == 1) // check box value check{?>
<script type="text/javascript">
document.getElementById('row_ship_date').style.display='none';
document.getElementById('row_ship_time').style.display='none';
getServices();
</script>
<?php }
?>
JS:
function getServices() {
alert('test');
var ship_date = $('#ship_date').val();
var ship_time = $('#ship_time').val();
// code so on..
}
当前问题
1)如果复选框检查为真(getServices()
语句的php检查),我无法调用if
,因为如果它为false则会调用onchange事件的日期并且工作正常。
2)如果在if
语句下调用此函数(当两个字段都被隐藏时),如何分别为两个文本字段设置当前日期和当前时间,如下所示:
function getServices() {
alert('test');
var ship_date = new Date();
var ship_time = currentTime();
// code so on..
}
答案 0 :(得分:0)
问题可能是因为您在声明之前尝试调用该函数。 尝试将代码包装在
中<script>
// self executing function
(function() {
// put your code here
})();
</script>
即;
<?php
if (isset($current_date_shipment) && $current_date_shipment == 1) // check box value check
{?>
<script type="text/javascript">
(function() {
document.getElementById('row_ship_date').style.display='none';
document.getElementById('row_ship_time').style.display='none';
getServices();
})();
</script>
答案 1 :(得分:0)
试试这个:
HashSet<int> serialNumAlreadyExisted = new HashSet<int>();
serialNumAlreadyExisted.Add(1);
serialNumAlreadyExisted.Add(2);
serialNumAlreadyExisted.Add(3);
var duplicateRows =
(from row in dt.AsEnumerable()
where row.Field<int>("ID") == varID &&
serialNumAlreadyExisted.Contains(row.Field<string>("SERIAL_NUMBER"))
select row).ToList();
您不需要隐藏字段来设置任何值,但可以使用jQuery <?php
if (isset($current_date_shipment) && $current_date_shipment == 1) {
$now = new DateTime();
$date = $now->format('Y-m-d');
$time = $now->format('H:i');
?>
<script type="text/javascript">
$('#row_ship_date,#row_ship_time').hide();
$('#ship_date').val(<?php echo $date; ?>);// this should set date value,Use appropriate PHP function.
$('#ship_time').val(<?php echo $time; ?>); // this should set time value,Use appropriate PHP function.
getServices();
</script>
<?php } ?>
设置如上所示。
只需在此处替换&#34;新的日期/时间值&#34;使用包含相应值的PHP变量或使用适当的PHP函数来获取它。
同时确保jQuery&amp;在PHP条件执行之前,您的函数定义.val()
已存在。
答案 2 :(得分:-1)
我猜你的语法有问题。您无法在PHP脚本中调用Javascript。这部分在这里:
<?php if (isset($current_date_shipment) && $current_date_shipment == 1) // check box value check{?>
<script type="text/javascript">
document.getElementById('row_ship_date').style.display='none';
document.getElementById('row_ship_time').style.display='none';
getServices();
// <---- notice also here you have no </script> tag :)
<?php }?>
我只是指出一些小的语法问题:)