编程语言
首页 > 编程语言> > javascript-如果选择了单选按钮,则显示警报

javascript-如果选择了单选按钮,则显示警报

作者:互联网

我希望单击单选按钮时显示警报.

我的单选按钮:

<div class="genericFormField">
   New:@Html.RadioButtonFor(m => m.Form.InstallType, 1, Model.InstallationHeader.InstallType == 1 ? new { Checked = "checked" } : null )
   Pool:@Html.RadioButtonFor(m => m.Form.InstallType, 2, Model.InstallationHeader.InstallType == 2 ? new { Checked = "checked" } : null)
   Refurb:@Html.RadioButtonFor(m => m.Form.InstallType, 3, Model.InstallationHeader.InstallType == 3 ? new { Checked = "checked" } : null)              
</div>

因此,如果选择了新单选按钮,我希望警报说“ NEW”,否则什么也没有.

通常很容易,因为您有ID,但是在这种情况下没有ID?

因为这是RadioButtonFor.

谢谢

新密码

完整代码:

       $('input[name="Form.InstallType"]').on('change', function() {
            var val = $('input[name="Form.InstallType"]:checked').val();
            if (val === '1') {

                var validOptions = "@Url.Action("SerialProdNumStockSiteAutoComplete", "Ajax")?stocksitenum=LW&model=" + $("#Form_Prod_Num").val();
                previousValue = "";

                $('#abc').autocomplete({
                    autoFocus: true,
                    source: validOptions,

                }).change(function(){

                    var source = validOptions;
                    var found = $('.ui-autocomplete li').text().search(source);
                    console.debug('found:' + found);
                    var val = $('input[name="Form.InstallType"]:checked').val();

                    if (found < 0 && val === '1') {
                        $(this).val('');
                        alert("Please choose from auto complete");

                    }

                });


            }

        });

这有效,但是如果单选按钮在页面加载中不起作用,则我必须单击另一个单选按钮,然后单击“新建”,然后它将起作用.

如果它已经被检查而不是在检查时就可以工作.

解决方法:

@ Html.RadioButtonFor创建具有名称和ID属性的正确输入.

您可以通过以下方式访问值:

$('input[name="Form.InstallType"]:checked').val();

不确定生成的无线电的名称,因为它是一个内部变量.
渲染页面并查看生成的名称.这就是我的情况.

现在,关于您的警报.您需要收听更改事件.

$('input[name="Form.InstallType"]').on('change', function()
{
    var val = $('input[name="Form.InstallType"]:checked').val();        
    if (val === '1') alert('New');
});

为什么是“ 1”?因为您已经在ASP.NET代码中进行了设置.
这就是它的外观.

<div class="genericFormField">
   New: @Html.RadioButtonFor(m => m.Form.InstallType, 'new')
   Pool: @Html.RadioButtonFor(m => m.Form.InstallType, 'pool')
   Refurb: @Html.RadioButtonFor(m => m.Form.InstallType, 'refurb')              
</div>
<script>
    $(document).ready(function() {
        AlertIfNewIsSelected(); // Check if it is selected on page load. According to the question in comments.
        $('input[name="Form.InstallType"]').on('change', AlertIfNewIsSelected);
    });

    function AlertIfNewIsSelected()
    {
        var val = $('input[name="Form.InstallType"]:checked').val();        
        if (val === 'new') alert('New');
    }
</script>

当然,无需使用jQuery就可以达到所有目的.

标签:if-statement,javascript,asp-net-mvc,jquery,radio-button
来源: https://codeday.me/bug/20191120/2042317.html