修改功能前的默认值
Default value before change function
我有一个简单的下拉列表值。更改时,将值传递给变量place
place
值传递给div,它从api加载数据。在我选择其中一个值之后,它可以正常工作,但我的初始值是空白的。
如何在单击选择列表之前存储默认值?
<select name="places">
<option value="135264023">New York</option>
<option value="116721348">Los Angeles</option>
<option value="104279908">Dubai</option>
</select>
<div id="widget"></div>
<script>
$('select').change(function() {
var place = $(this).val();
console.log(place);
// This call have to happen after div and <script> tag.
widgetOptions({
element: 'widget',
placeId: place,
});
});
</script>
您可以通过添加selected
布尔属性将选项设置为默认值,但我的猜测是,您真正的问题是如何在开始时触发加载信息。
添加selected
(尽管它很可能已经默认为第一个):
<select name="places">
<option value="135264023" selected>New York</option><!-- Note change -->
<option value="116721348">Los Angeles</option>
<option value="104279908">Dubai</option>
</select>
…然后在脚本中:
var sel = $("select"); // You probably want this to be more specific
setupPlace(sel.val());
sel.change(function() {
setupPlace($(this).val());
});
function setupPlace(place) {
console.log(place);
// This call have to happen after div and <script> tag.
widgetOptions({
element: 'widget',
placeId: place,
});
}
请注意我们是如何将逻辑隔离为一个函数的,然后我们从需要的两个地方调用该函数:Initialization和change。
或者,你看到人们做这样的事情(仍然使用selected
属性):
$('select').change(function() {
var place = $(this).val();
console.log(place);
// This call have to happen after div and <script> tag.
widgetOptions({
element: 'widget',
placeId: place,
});
}).trigger("change"); // <== Only change is here
我不喜欢使用假事件来触发处理程序,但我可以看到它的吸引力。这在很大程度上是一种风格选择。
var place = null;
$('select').click(function() {
if(place === null) {
place = $(this).val();
}
});
$('select').change(function() {
//place = $(this).val();
console.log(place);
// This call have to happen after div and <script> tag.
widgetOptions({
element: 'widget',
placeId: place,
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select name="places">
<option value="135264023">New York</option>
<option value="116721348">Los Angeles</option>
<option value="104279908">Dubai</option>
</select>
<div id="widget"></div>
相关文章:
- 我的shareService在angular 2中发送值工作正常,但当我渲染我的另一个组件时,会获得默认值
- jquerydatetimepicker日期和时间应在框默认值中,而无需单击框
- 如果值为空,如何设置输入的默认值?jQuery
- 骨干模型默认值-todos.js示例中不必要的代码
- jquery日期选择器年份范围默认值
- Html5输入属性的默认值,如最小值、最大值、大小等
- 根据两个下拉列表的默认值禁用按钮
- 如何创建具有默认值的JavaScript对象字段?(AngularJS模型相关)
- Angularjs-设置不带ng选项的select的默认值
- jQuery Datepicker从日期开始设置默认值
- 如何设置浏览器打开的文件对话框的文件名(一些默认值)
- JQuery BlockUI鼠标加载光标没有't在Google Chrome中返回默认值
- Selectize选择默认值
- 在KeystoneJS中为Types.Money设置默认值
- 是否可以同时为一个元素的所有事件指定阻止默认值
- 防止在IE7中按回车键时出现默认值
- 如何覆盖jqGrid's语言默认值
- 如何为显示jquery滑块值的文本框设置默认值
- 当数组在angularjs中没有可比较的值时,如何分配默认值
- 修改功能前的默认值