如何使用所选的max_selected_options作为动态值?

时间:2016-09-03 17:03:06

标签: javascript jquery select jquery-chosen

我在我的Web应用程序中使用chosen库。我已将max_selected_options设为4。

这是我的代码: -

$('#tag').chosen({max_selected_options:4});
$('#tag').bind("chosen:maxselected", function() {
    var htmlMSG = '<strong>Severe Error!</strong><p>You can only add 4 tags.</p>';
    $('#modalSuccess').html('');
    $('#modalError').html('');
    $('#modalError').html(htmlMSG);
    $('#modalError').show();
    $('#modalSuccess').hide();
    $('#modal_redirect').val('false');   
    $('#modal').modal('show'); 
});

现在,在代码中,我正在使用: -

var htmlMSG = '<strong>Severe Error!</strong><p>You can only add 4 tags.</p>'

我已将4设置为硬编码的消息。

有什么方法可以在HTML消息中使用动态值吗? 说,有什么像

var htmlMSG = '<strong>Severe Error!</strong><p>You can only add '+ chosen.max_selected_options +' tags.</p>'

1 个答案:

答案 0 :(得分:1)

基本变量在这里适合你吗?仍然相当硬编码,但在你的例子中,max_selected_options似乎也在4处硬编码,不确定你的代码的其余部分是否比这更复杂/更动态。

var maxSelect = 4;

$('#tag').chosen({max_selected_options:maxSelect});
$('#tag').bind("chosen:maxselected", function() {
    var htmlMSG = '<strong>Severe Error!</strong><p>You can only add' + maxSelect + 'tags.</p>';
    $('#modalSuccess').html('');
    $('#modalError').html('');
    $('#modalError').html(htmlMSG);
    $('#modalError').show();
    $('#modalSuccess').hide();
    $('#modal_redirect').val('false');   
    $('#modal').modal('show'); 
});

对于可能更动态的东西,如果您有权访问DOM,则可以使用数据属性:

$('.select_input').each(function(){
    var maxSelect = $(this).data('selectmax');

    $(this).chosen({max_selected_options:maxSelect});
    $(this).bind("chosen:maxselected", function() {
        var htmlMSG = '<strong>Severe Error!</strong><p>You can only add' + maxSelect + 'tags.</p>';
        $('#modalSuccess').html('');
        $('#modalError').html('');
        $('#modalError').html(htmlMSG);
        $('#modalError').show();
        $('#modalSuccess').hide();
        $('#modal_redirect').val('false');   
        $('#modal').modal('show'); 
    });
});

和HTML:

<select data-selectmax="4" class="select_input">...</select>