如果 html 标签包含 size 属性,Jquery UI 选择表单字段覆盖 size 属性。
我有一个表单元素,在更改前一个选择时通过 ajax 调用加载。 Ajax 调用工作正常,我终于做到了不破坏样式。我只能让它变得比只有 1 个选项更大。
我的JS:
jQuery(document).ready(function(){
jQuery("#ajaxLoader").hide();
jQuery("#field1").change(function(){
var optionValue = jQuery("#field1").val();
jQuery.ajax({
type: "POST",
url: "<?=$myURL?>",
data: ({key: optionValue, status: 1}),
beforeSend: function(){ jQuery("#ajaxLoader").show(); },
complete: function(){ jQuery("#ajaxLoader").hide(); },
success: function(response){
jQuery("#field2").html(response);
jQuery("#field2").show();
}
});
});
});
我还上传了截图 http://coolyar.net/?di=513133334819
编辑: 我的 Global.js 选择函数
$('select').each(function(){
var select = this;
//I think this is the issue here. I don't know how to override the size
attribute.
$(this).attr('size',$(this).find('option').length+1).wrap('<span class="ui-select" />')
.before('<span class="ui-select-value" />')
.bind('change, click', function(){
$(this).hide().prev().html($(this).find('option:selected').text());
})
.after('<a class="ui-select-button button button-gray"><span></span></a>')
.next().click(function(){
if ($(select).toggle().is(':visible')) {
$(select).focus();
}
return false;
})
.prev().prev().html($(this).find('option:selected').text())
.click(function(){
if ($(select).toggle().is(':visible')) {
$(select).focus();
}
return false;
});
$(this).blur(function(){ $(this).hide(); }).parent().disableSelection();
});
I have a form element being loaded with an ajax call on change of the previous select. The Ajax call works fine, and I finally got it not to break the styling. I just can get it to grow larger than just 1 options.
My JS:
jQuery(document).ready(function(){
jQuery("#ajaxLoader").hide();
jQuery("#field1").change(function(){
var optionValue = jQuery("#field1").val();
jQuery.ajax({
type: "POST",
url: "<?=$myURL?>",
data: ({key: optionValue, status: 1}),
beforeSend: function(){ jQuery("#ajaxLoader").show(); },
complete: function(){ jQuery("#ajaxLoader").hide(); },
success: function(response){
jQuery("#field2").html(response);
jQuery("#field2").show();
}
});
});
});
I've also uploaded a screenshot http://coolyar.net/?di=513133334819
EDIT:
My Global.js Select Function
$('select').each(function(){
var select = this;
//I think this is the issue here. I don't know how to override the size
attribute.
$(this).attr('size',$(this).find('option').length+1).wrap('<span class="ui-select" />')
.before('<span class="ui-select-value" />')
.bind('change, click', function(){
$(this).hide().prev().html($(this).find('option:selected').text());
})
.after('<a class="ui-select-button button button-gray"><span></span></a>')
.next().click(function(){
if ($(select).toggle().is(':visible')) {
$(select).focus();
}
return false;
})
.prev().prev().html($(this).find('option:selected').text())
.click(function(){
if ($(select).toggle().is(':visible')) {
$(select).focus();
}
return false;
});
$(this).blur(function(){ $(this).hide(); }).parent().disableSelection();
});
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)