jQuery Mobile: Two/three 列垂直控制单选按钮组
jQuery Mobile: Two/three column vertical control group of radio buttons
我最近一直在使用 jQuery Mobile 并开始遇到各种限制;其中大部分我可以使用某种 jQuery/Javascript/CSS 操作来解决。我们使用了很多 iPad,它允许比典型的 phone 更宽。我们页面上的一些输入组往往以两列格式看起来更好;可能的话。
一个例子是一长串单选按钮。仅在一列中看起来很糟糕。我们希望以 2 或 3 列显示单选按钮列表,而不是使用单个 "vertical" "controlgroup" 获得的典型的 1 列格式。请参阅此演示页面上的垂直控制组:
http://demos.jquerymobile.com/1.4.5/checkboxradio-radio/#Verticalgroup
对于复选框,我通过创建两个或三个不同的控制组然后将它们放入一个 3 列网格中来完成此操作。这适用于复选框,但我不确定如何使用单选按钮执行此操作。有什么想法吗?
我想我可以创建三个不同的无线电输入垂直控制组(并排),然后操纵 CSS,这样看起来只有一组。我必须为实际选择的收音机管理隐藏输入。
我决定为营销来源创建两个列;右边和左边。名称是 "marketing_source_left" 和 "marketing_source_right"。我填充了两个无线电垂直控制组,然后使用 jQuery 将两者都更改为只有 "marketing_source".
的 "name" 属性
// Define current marketing_source value and remove hidden field
var marketing_source = $('#marketing_form #marketing_source').val(); // hidden field
$('#marketing_form #marketing_source').val(marketing_source).remove();
// Change all marketing source radios (left and right sides)
// to have property name="marketing_source"
$("#marketing_form input:radio[name='marketing_source_left']").prop('name', 'marketing_source').prop('checked', false);
$("#marketing_form input:radio[name='marketing_source_right']").prop('name', 'marketing_source').prop('checked', false);
// Set the radio to checked for the marketing source value
$('#marketing_form input[type="radio"]:checked').prop('checked', false); // Uncheck current
$('#marketing_form input:radio[name="marketing_source"]').filter('[value="'+marketing_source+'"]').prop('checked', true);
$('#marketing_form input:radio[name="marketing_source"]').checkboxradio('refresh');
使用的CSS与此类似。
#marketing_right_div, #marketing_left_div {
display: inline-block !important;
width: 314px !important;
text-align: top;
vertical-align: top;
}
我最近一直在使用 jQuery Mobile 并开始遇到各种限制;其中大部分我可以使用某种 jQuery/Javascript/CSS 操作来解决。我们使用了很多 iPad,它允许比典型的 phone 更宽。我们页面上的一些输入组往往以两列格式看起来更好;可能的话。
一个例子是一长串单选按钮。仅在一列中看起来很糟糕。我们希望以 2 或 3 列显示单选按钮列表,而不是使用单个 "vertical" "controlgroup" 获得的典型的 1 列格式。请参阅此演示页面上的垂直控制组:
http://demos.jquerymobile.com/1.4.5/checkboxradio-radio/#Verticalgroup
对于复选框,我通过创建两个或三个不同的控制组然后将它们放入一个 3 列网格中来完成此操作。这适用于复选框,但我不确定如何使用单选按钮执行此操作。有什么想法吗?
我想我可以创建三个不同的无线电输入垂直控制组(并排),然后操纵 CSS,这样看起来只有一组。我必须为实际选择的收音机管理隐藏输入。
我决定为营销来源创建两个列;右边和左边。名称是 "marketing_source_left" 和 "marketing_source_right"。我填充了两个无线电垂直控制组,然后使用 jQuery 将两者都更改为只有 "marketing_source".
的 "name" 属性// Define current marketing_source value and remove hidden field
var marketing_source = $('#marketing_form #marketing_source').val(); // hidden field
$('#marketing_form #marketing_source').val(marketing_source).remove();
// Change all marketing source radios (left and right sides)
// to have property name="marketing_source"
$("#marketing_form input:radio[name='marketing_source_left']").prop('name', 'marketing_source').prop('checked', false);
$("#marketing_form input:radio[name='marketing_source_right']").prop('name', 'marketing_source').prop('checked', false);
// Set the radio to checked for the marketing source value
$('#marketing_form input[type="radio"]:checked').prop('checked', false); // Uncheck current
$('#marketing_form input:radio[name="marketing_source"]').filter('[value="'+marketing_source+'"]').prop('checked', true);
$('#marketing_form input:radio[name="marketing_source"]').checkboxradio('refresh');
使用的CSS与此类似。
#marketing_right_div, #marketing_left_div {
display: inline-block !important;
width: 314px !important;
text-align: top;
vertical-align: top;
}