当你有很多时,如何从模态中只填充一个文本框

时间:2016-04-19 10:31:36

标签: javascript c# jquery asp.net twitter-bootstrap

我解释了我的问题,我有这个代码:

 @Html.LabelFor(m => m.X.Y, new { @class = "col-sm-d col-sm-2 control-label" })
   <div class="col-sm-2">
       @Html.TextBoxFor(m => m.X.Y, new { @class = "form-control", @id = "X"})
   </div>
   <div class="col-sm-2">
       @Html.EnumDropDownListFor(m => m.X.Y, new { @class = "form-control", @id = "Dropdown1" })
   </div>

 @Html.LabelFor(m => m.X.Y, new { @class = "col-sm-d col-sm-2 control-label" })
   <div class="col-sm-2">
       @Html.TextBoxFor(m => m.X.Y, new { @class = "form-control", @id = "X_Y2"})
   </div>
   <div class="col-sm-2">
        @Html.EnumDropDownListFor(m => m.X.Y, new { @class = "form-control", @id = "Dropdown2" })
   </div>

这个模式:

            <div id="myModal" class="modal fade">
        <div class="modal-dialog">
            <div class="modal-content">
                <div class="modal-header">
                    Multiples
                </div>
                <div class="modal-body">
                    Valeur <input style="text-align:right;" type="text" id="Valeur"/><br />
                    Unité <input style="text-align:right;" type="text" id="Unite1" /><br />
                    Unité <input style="text-align:right;" type="text" id="Unite2" /><br />
                    Opérant (+) <input style="text-align:right;" type="text" id="Operand" /><br />
                    <br />
                    Valeur <input style="text-align:right;" type="text" id="Valeur2" /><br />
                    Unité <input style="text-align:right;" type="text" id="Unite3" /><br />
                    Unité <input style="text-align:right;" type="text" id="Unite4" /><br />
                    Opérant (+) <input style="text-align:right;" type="text" id="Operand2" /><br />
                    <br />
                    Valeur <input style="text-align:right;" type="text" id="Valeur3" /><br />
                    Unité <input style="text-align:right;" type="text" id="Unite5" /><br />
                    Unité <input style="text-align:right;" type="text" id="Unite6" /><br />
                </div>
                <div class="modal-footer">
                    <button type="button" class="btn btn-warning" data-dismiss="modal">
                        Annuler
                    </button>

                    <button type="button" class="btn btn-success" data-dismiss="modal" id="valueOK">
                        Valider
                    </button>

                </div>
            </div>
        </div>
    </div>

我的剧本:

    $(function () {
        $("#Dropdown1,#Dropdown2,#Dropdown3,#Dropdown4,#Dropdown5,#Dropdown6,#Dropdown7,#Dropdown8,#Dropdown9,#Dropdown10,#Dropdown11,#Dropdown12,#Dropdown13,#Dropdown14,#Dropdown15,#Dropdown16,#Dropdown17,#Dropdown18,#Dropdown19,#Dropdown20,#Dropdown21,#Dropdown22,#Dropdown23,#Dropdown24,#Dropdown25,#Dropdown26,#Dropdown27,#Dropdown28,#Dropdown27,#Dropdown28,#Dropdown29,#Dropdown30,#Dropdown31,#Dropdown32,#Dropdown33,#Dropdown34,#Dropdown35,#Dropdown36,#Dropdown37").change(function () {
            //Recupere la value de la liste
            selection = $(this).val();
            //Mettre la valeur du choix de liste.
            if (selection == 10) {
                //Affiche le modal
                $('#myModal').modal('show');
            }
        });
    });



var modalValue1 = $('#Valeur')
var modalValue2 = $('#Unite1')
var modalValue3 = $('#Unite2')

var modalOperand = $('#Operand')

var modalValue4 = $('#Valeur2')
var modalValue5 = $('#Unite3')
var modalValue6 = $('#Unite4')

var modalOperand2 = $('#Operand2')

var modalValue7 = $('#Valeur3')
var modalValue8 = $('#Unite5')
var modalValue9 = $('#Unite6')

$('#valueOK').click(function () {       
    $('#X').val(modalValue1.val() + modalValue2.val() + modalValue3.val() + modalOperand.val() + modalValue4.val() + modalValue5.val() + modalValue6.val() + modalOperand2.val() + modalValue7.val() + modalValue8.val() + modalValue9.val());
})

所以这很好用,当我把文字放在我的文本框中,按下按钮后,信息进入我页面的texbox,没关系。但是,如果我尝试将其应用于其他文本框我面临一个问题,如果我填写模态它将获取此信息并将其放入页面的每个文本框中,但那不是我想要的,我该怎么办例如,用信息填充第一个文本框,用其他信息填充第二个文本框?

1 个答案:

答案 0 :(得分:0)

如果我理解你想要什么,你有很多文本框和下拉列表,如果下拉列表中的任何一个更改为10你想要显示一个对话框,然后填写相关的文本框。

所以,你的编码太难了。 首先,使用类选择器代替id selector $(“#DropDown1,#DropDown2,....”) - &gt; $( “MyDropdown”)

之后你可以控制你的模态

用于查找在jquery中使用closet或parent命令的最近文本框。

它只是一个解决方案,您可以找到许多其他解决方案来做到这一点。比如通过数据找到 - 或者咏叹调 - 。

我希望它对你有用。

修改

$(".dropdown").click(function(){
     var targetTextBox=$(this).closest("div+ input").prev().find('input');
     BootstrapDialog.show({
        message: function(dialog) {
            var $message = $('<div></div>');
            var pageToLoad = dialog.getData('pageToLoad');
            $message.load(pageToLoad);

            return $message;
        },
        data: {
            'pageToLoad': 'remote.html'
        },
        buttons: [{
            id: 'btn-1',
            label: 'Click to disable and spin.',
            action: function(dialog) {
                targetTextbox='load your data';
            }
        }]
    });
});

这是一个示例,但您必须为您自定义它。 你必须使用对话框而不是模态