Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 没有选定项目时的“下一步”按钮行为_Javascript_C#_Jquery_Html_Asp.net Mvc - Fatal编程技术网

Javascript 没有选定项目时的“下一步”按钮行为

Javascript 没有选定项目时的“下一步”按钮行为,javascript,c#,jquery,html,asp.net-mvc,Javascript,C#,Jquery,Html,Asp.net Mvc,我有一个带有动态部分的html页面,根据所选选项的不同而变化。以下是选项部分: <div class="form-group-lg"> @foreach (var respuesta in Model.ListRespuestas) { <div class="col-md-8"> <label cl

我有一个带有动态部分的html页面,根据所选选项的不同而变化。以下是选项部分:

<div class="form-group-lg">
                        @foreach (var respuesta in Model.ListRespuestas) {
                            <div class="col-md-8">
                                <label class="control-label" for="@respuesta.Id">
                                    @respuesta.Nombre
                                </label>
                                <input type="radio" name="SelectedItem" id="@respuesta.Id" value="@respuesta.Id" style="margin-right: 10px;" />
                            </div>
                        }
                    </div>

@foreach(Model.ListRespuestas中的var respuesta){
@列名
}
当按下“下一步”(“非西班牙语国家的siguiente”)按钮时,情况会发生变化。这是按钮的代码:

<div class="col-md-6 text-right">
                    <span data-placement="top" data-toggle="tooltip" title="" data-original-title="Confirmación de acción">
                        <input type="submit" id="siguiente" class="btn btn-primary" value="Siguiente" />
                    </span>
                </div>

此按钮的脚本如下所示:

<script>
            $('#siguiente').click(function (e) {
                e.preventDefault();
                SendAjaxForm();
            });
            $('input:radio[name="SelectedItem"]').change(
                function () {
                    if (this.checked) {
                        $.post('@Url.Content("~/Home/Opciones/?idrespuesta=")' + this.id, function (data) {
                            $("#content-options").html(data);
                        });
                    }
                });
        </script>

$('siguiente')。单击(函数(e){
e、 预防默认值();
SendAjaxForm();
});
$('input:radio[name=“SelectedItem”]')。更改(
函数(){
如果(选中此项){
$.post('@Url.Content(“~/Home/Opciones/?idrespuesta=“)”)+this.id,函数(数据){
$(“#内容选项”).html(数据);
});
}
});
所有这些都很好。页面显示第一个问题,然后用户选择一个并单击下一步,然后框架更改并显示相应的下一个问题,该过程继续进行,直到完成问题分支

但是,我不知道如何对按钮进行编码,以便在单击且未选择任何选项时抛出警告消息(棘手的部分是未选择的行为,我知道如何抛出异常)。欢迎提供任何帮助(包括文档或wiki)。提前谢谢大家

编辑-更新

所以我更新了按钮脚本

<script>
            $('#siguiente').click(function (e) {
                if ($('input:radio[name="SelectedItem"]').is(':checked')){
                    e.preventDefault();
                    SendAjaxForm();

                    $('input:radio[name="SelectedItem"]').change(function () {
                        if (this.checked) {
                            $.post('@Url.Content("~/Home/Opciones/?idrespuesta=")' + this.id, function (data) {
                                $("#content-options").html(data);
                            });
                        }
                    });
                } else {
                    alert("No se ha seleccionado nada");
                }
            });

        </script>

$('siguiente')。单击(函数(e){
如果($('input:radio[name=“SelectedItem”]')。是(':checked')){
e、 预防默认值();
SendAjaxForm();
$('input:radio[name=“SelectedItem”]')。更改(函数(){
如果(选中此项){
$.post('@Url.Content(“~/Home/Opciones/?idrespuesta=“)”)+this.id,函数(数据){
$(“#内容选项”).html(数据);
});
}
});
}否则{
警报(“无se ha seleccionado nada”);
}
});

现在,当未选择任何选项时,我会显示一条警告消息,但“SendAjaxForm”函数仍会执行-生成一个异常(由于字段“idrespuesta”为null,未选择任何选项,所以在需要int时引用null参数)。不知道为什么。无论如何,谢谢大家。

我终于拿到了。建议的更改仅影响脚本:

<script>
$('#siguiente').click(function (e) {

    $('input:radio[name="SelectedItem"]').change(function () {
        if (this.checked) {
            $.post('@Url.Content("~/Home/Opciones/?idrespuesta=")' + this.id, function (data) {
                $("#content-options").html(data);
            });
        }
    });

    if ($('input:radio[name="SelectedItem"]').is(':checked')){
        e.preventDefault();
        SendAjaxForm();

    } else {
        e.preventDefault();
        alert("No se ha seleccionado nada");
        }
});</script>
注意下面几行
e.preventDefault()
备选方案。这是为了防止按钮仍然工作,即使没有选中任何选项

现在,如果我们在未选中任何选项的情况下按下“下一步”按钮,则会显示一条警报,并保持在页面上,直到之前选择了任何选项。谢谢大家的支持,希望对大家有所帮助


愉快的编码。

如果您通过使用强类型的
HtmlHelper
方法绑定到模型,生成了正确的视图,那么这一切都是现成的,但是您可以随时检查
resp
是否
未定义
@StephenMuecke我实际上收到了这个未完成的项目,这是我学习的一部分,你能提供一个参考/链接,让我可以详细阅读那些HtmlHelper方法吗?谢谢你,谢谢你的回答。你在循环中生成单选按钮的代码应该是
@respuesta。Nombre@Html.RadioButtonFor(m=>m.SelectedItem,respuesta.Id,new{Id=”“})
并在循环后添加
@Html.ValidationMessageFor(m=>m.SelectedItem)
,其中属性是
[Required]public int?选择editem{get;set;}
添加内容时,您将重新解析
$.validator
,请参阅。然后处理表单
.submit()
事件并检查
.valid()
,如果没有,则取消ajax(并显示错误消息)@StephenMuecke感谢您的回答。您提出的更改超出了我目前的C#知识(不是因为我不理解它,似乎是一个适当的结构/设计问题),但我会仔细研究一下。如果你能告诉我如何搜索,那就太好了。再次感谢。
if ($('input:radio[name="SelectedItem"]').is(':checked')){
        e.preventDefault();
        SendAjaxForm();

    } else {
        e.preventDefault();
        alert("No se ha seleccionado nada");
        }