我正在使用ActiveForm我的模型表单.但是,对于几个字段,而不是使用$form->field(...)->dropDownList()where $form = ActiveForm::begin()显示字段,我使用Html::activeDropDownList($model, 'attribute')和相应的属性,我有一个验证规则(在模型内).我也能enableAjaxValidation和enableClientValidation形式.我注意到,虽然使用该$form->field()方法创建的所有字段都触发了AJAX验证,但我的自定义Html::activeDropDownList()字段不会触发验证(我可以yiiActiveForm()在生成的页面源中看到从javascript函数调用中排除的那些).我如何自动触发这些字段的AJAX验证呢?
$caseid(通常)是一个5位数字(可能更低).我想要一个前导0,这个数字是6位数:
<?php
$caseid=12345;
echo str_pad(strval($caseid), 6-strlen(strval($caseid)), '0', STR_PAD_LEFT); ?>
Run Code Online (Sandbox Code Playgroud)
这不能按预期工作(显示相同的数字).相反,如果我在第二个参数中添加5 str_pad,则可行.
<?php echo str_pad(strval($caseid), 11-strlen(strval($caseid)), '0', STR_PAD_LEFT); ?>
Run Code Online (Sandbox Code Playgroud)
有用.这里有什么错误?
有人能告诉我为什么getPlaces()函数返回下面的空格字符串?
在head元素中,我有Google maps脚本的链接
<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?sensor=false&v=3.exp&key=MyKey&libraries=places"></script>
Run Code Online (Sandbox Code Playgroud)
Javascript代码:
jQuery(window).load(function() {
var map = new google.maps.Map(document.getElementById('mapCanvas'), {
mapTypeId: google.maps.MapTypeId.ROADMAP,
streetViewControl: false
});
var defaultBounds = new google.maps.LatLngBounds(
new google.maps.LatLng(41.7033177, -93.0573533),
new google.maps.LatLng(41, -93)
);
map.fitBounds(defaultBounds);
var input = document.getElementById('addressSearch');
var searchBox = new google.maps.places.SearchBox(input);
var markers = [];
google.maps.event.addListener(searchBox, 'places_changed', function() {
var places = searchBox.getPlaces();
for (var i = 0, marker; marker = markers[i]; i++) {
marker.setMap(null);
}
markers = [];
var bounds = new google.maps.LatLngBounds();
for (var i = 0, …Run Code Online (Sandbox Code Playgroud)