JQuery在部分视图中不起作用得到一个值radiobutton

时间:2018-01-22 10:55:04

标签: jquery asp.net-mvc partial-views

我需要从单选按钮获取一个值,然后启用或禁用其他组件。

我在模态弹出窗口的局部视图中执行此操作。

我将JQuery代码放在局部视图中但不起作用。

如果我从父母那里得到一个值,那就可以了。

部分视图(仅限部分)

<fieldset>
                    <section class="col col-10">
                        <div class="inline-group">
                            <label class="label">Notifica attività di tipo Replacing con collegamento ad una precedente notifica mancante</label>
                            <label class="radio">
                                @if ((Model.VET_NOTREPMOD == "1") || (Model.VET_NOTREPMOD == "2"))
                                {
                                    <input type="radio" name="radio-inline" id="VET_NOTREPMOD_0" value="1" checked>
                                }
                                else
                                {
                                    <input type="radio" name="radio-inline" id="VET_NOTREPMOD_0" value="1">
                                }                                
                                <i></i>Usa ID Evento
                            </label>
                            <fieldset id="Mode3" >
                                <section class="col col-10">
                                    <div class="inline-group">
                                        <label class="label">Se non trovata</label>
                                        <label class="radio">
                                            @if (Model.VET_NOTREPMOD == "1")
                                            {
                                                <input type="radio" name="radio-inline1" id="VET_NOTREPMOD_1" value="1" checked>
                                            }
                                            else
                                            {
                                                <input type="radio" name="radio-inline1" id="VET_NOTREPMOD_1" value="1">
                                            }
                                            <i></i>Processala come nuova
                                        </label>
                                        <label class="radio">
                                            @if (Model.VET_NOTREPMOD == "2")
                                            {
                                                <input type="radio" name="radio-inline1" id="VET_NOTREPMOD_2" value="2" checked>
                                            }
                                            else
                                            {
                                                <input type="radio" name="radio-inline1" id="VET_NOTREPMOD_2" value="2">
                                            }
                                            <i></i>Ignorala
                                        </label>
                                    </div>
                                </section>
                            </fieldset>
                            <label class="radio">
                                @if (Model.VET_NOTREPMOD == "3")
                                {
                                    <input type="radio" name="radio-inline" id="VET_NOTREPMOD_3" value="3" checked>
                                }
                                else
                                {
                                    <input type="radio" name="radio-inline" id="VET_NOTREPMOD_3" value="3">
                                }
                                <i></i>Ignorala
                            </label>
                        </div>
                    </section>
                </fieldset>

部分视图中的JQuery

@section Scripts {
    <script type="text/javascript">
        $(document).ready(function () {
            $("input[name='radio-inline']").click(function () {
                if ($("#VET_NOTREPMOD_3").is(":checked")) {
                    var valor = $('#VET_NOTREPMOD_3').val();
                    console.log("Valore: " + valor);
                } else {
                    console.log("ciao");
                }
            });
        });


            </script>
}

Parent中的代码,我得到一个值(我这样做是为了测试)

$(function () {
                $("#dialog").dialog({
                    autoOpen: false,
                    modal: true,
                    width: 600,
                    title: $('#tableTitle').val(),
                    buttons: [
                        {
                            html: "Cancel",
                            "class": "btn btn-default",
                            click: function () {
                                $(this).dialog("close");
                            }
                        }, {
                            html: "<i class='fa fa-check'></i>&nbsp; OK",
                            "class": "btn btn-primary",
                            click: function () {
                                //$('#VET_NOTREPMOD_3').change(function () {
                                    var valor = $('#VET_NOTREPMOD_3').val();
                                    console.log("Valore: " + valor);
                                    //var selValue = $('input[name=sample]:checked').attr('id');
                                    //$('p').html('<br/>Selected Radio Button ID is : <b>' + selValue + '</b>');
                               // });
                                //---
                                //var code = $('#DesEng').val();
                                //console.log(code);
                                $(this).dialog("close");
                            }
                        }
                    ]
                });

            });

由于

1 个答案:

答案 0 :(得分:0)

问题:“您的部分视图不是加载的DOM的一部分,因此它不可用于jquery”

..除了部分视图应该包含HTML而且只有一点js的事实 (允许一点点)

在你的情况下

<script type="text/javascript">
        $(document).ready(function () {

没有得到jquery ....一个快速的黑客就是在函数之前调用jquery ...并删除document.ready part

PS:这不是一个很好的解决方案....我只是在告诉黑客让代码正常工作......

   <script type="text/javascript" src="~Scripts/Jquery.min.js">

                $("input[name='radio-inline']").click(function () {
                    if ($("#VET_NOTREPMOD_3").is(":checked")) {
                        var valor = $('#VET_NOTREPMOD_3').val();
                        console.log("Valore: " + valor);
                    } else {
                        console.log("ciao");
                    }
                });

</script>

应该做的伎俩