Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/226.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 验证动态单选按钮jQuery_Javascript_Php_Jquery_Html_Jquery Validate - Fatal编程技术网

Javascript 验证动态单选按钮jQuery

Javascript 验证动态单选按钮jQuery,javascript,php,jquery,html,jquery-validate,Javascript,Php,Jquery,Html,Jquery Validate,问题:我无法验证动态创建的单选按钮 问题:如何使用jQuery验证单选按钮 是否可以自定义jQuery以验证动态创建的单选按钮 有什么建议吗 我的表单中的HTML和PHP <label class="radio"> <input type="radio" name='radnummer_varde[<?php echo $kk['radnummer'];?>]' value='1' <?php if (($hamta_formaga['radnumme

问题:我无法验证动态创建的单选按钮

问题:如何使用jQuery验证单选按钮

是否可以自定义jQuery以验证动态创建的单选按钮

有什么建议吗

我的表单中的HTML和PHP

<label class="radio">
    <input type="radio" name='radnummer_varde[<?php echo $kk['radnummer'];?>]' value='1' <?php if (($hamta_formaga['radnummer_varde'] == '1')) echo 'checked="checked" '; ?>>
    <i class="rounded-x"></i>Prövas
</label>

<label class="radio">
    <input type="radio" name='radnummer_varde[<?php echo $kk['radnummer'];?>]' value='0' <?php if (($hamta_formaga['radnummer_varde'] == '0')) echo 'checked="checked" '; ?>>
    <i class="rounded-x"></i>Prövas ej
</label>
编辑2015-03-27:

选择2

<label class="radio">
    <input type="radio" name='radnummer_varde[<?php echo $kk['radnummer'];?>]' value='1' <?php if (($hamta_formaga['radnummer_varde'] == '1')) echo 'checked="checked" '; ?>>
    <i class="rounded-x"></i>Prövas
</label>

<label class="radio">
    <input type="radio" name='radnummer_varde[<?php echo $kk['radnummer'];?>]' value='0' <?php if (($hamta_formaga['radnummer_varde'] == '0')) echo 'checked="checked" '; ?>>
    <i class="rounded-x"></i>Prövas ej
</label>

<script type="text/javascript"> 
    $(document).ready(function () {
    $('#redigera_abb').validate({});                                
    $('[name="radnummer_varde[<?php echo $kk['radnummer'];?>]"]').rules('add', {
        required: true,
        messages: {
            required: "At least one option needed."
        }
    }); 
    });                             
</script>

>
普罗瓦斯
>
普罗瓦斯ej
$(文档).ready(函数(){
$('redigera_abb')。验证({});
$('[name=“radnummer_varde[]]”)。规则('add'{
要求:正确,
信息:{
必需:“至少需要一个选项。”
}
}); 
});                             
“是否可以自定义jQuery以验证动态创建的单选按钮?”

是的,这与向任何动态创建的元素添加验证没有什么不同

首先,让我们检查这部分代码

var AbbRedigeraForm = function () {

    return {        

        initAbbRedigeraForm: function () {
            // Validation
            $("#redigera_abb").validate({
                // Regler för validation
                rules:
                {
                    'radnummer_varde[]':
                    {
                        required: true                      
                    },
                    ....
  • 通常不会将
    .validate()
    放入函数内部。这是而不是测试方法
    .validate()
    初始化方法。因此,
    .validate()
    只进入DOM就绪处理程序中,在该处理程序中调用一次来初始化表单上的插件。否则,当您需要验证时,验证尚未准备就绪,并且/或者重复调用
    .validate()
    方法

  • 如果没有元素的确切名称,则不能在
    .validate()
    规则
    选项中声明规则。由于
    radnummer\u varde[]
    不是实际的
    名称
    ,因此此规则声明不起任何作用

  • 次要的一点,但您永远不应该在JavaScript中使用Allman样式的代码格式。为什么?因为。对于熟悉JavaScript更典型的1TB格式的人来说,这也使代码更难阅读


  • 动态创建元素的解决方案

    选项1:只需将规则声明与元素内联,而不是在
    .validate()中使用
    规则
    选项。对于
    required
    规则,您可以使用
    class
    或HTML5
    required
    属性,如下所示

    <input type="radio" name='radnummer_varde[1]' class="required" ...
    
    选项3:您的元素不是真正“动态”创建的,但您事先不知道确切的
    名称。使用“从开始”选择器获取所有这些元素,使用jQuery
    .each()
    将该方法应用于所有元素

    $('[name^="radnummer_varde"]').each(function() {
        $(this).rules('add', {
            required: true,
            messages: { // optional
                required: "custom message"
            }
        });
    });
    
    注释

  • 无论您如何声明规则,每个输入都必须包含
    名称
    属性

  • 使用
    .rules()
    不会否定
    .validate()
    方法的使用。在调用
    .rules()
    之前,您必须已经在表单上调用了
    .validate()
    来初始化插件

  • 如果附加到
    .rules()
    的选择器同时以一组元素为目标,则必须使用jQuery
    。each()
    函数,否则插件将只使用第一个匹配的元素


  • “如何使用jQuery验证单选按钮?”

    我注意到,在某些情况下,单选按钮的HTML可能包含
    checked=“checked”
    。请注意,如果单选按钮按选中的方式加载到页面中,则验证无需执行,因为已满足
    required
    规则

    “是否可以自定义jQuery以验证动态创建的单选按钮?”

    是的,这与向任何动态创建的元素添加验证没有什么不同

    首先,让我们检查这部分代码

    var AbbRedigeraForm = function () {
    
        return {        
    
            initAbbRedigeraForm: function () {
                // Validation
                $("#redigera_abb").validate({
                    // Regler för validation
                    rules:
                    {
                        'radnummer_varde[]':
                        {
                            required: true                      
                        },
                        ....
    
  • 通常不会将
    .validate()
    放入函数内部。这是而不是测试方法
    .validate()
    初始化方法。因此,
    .validate()
    只进入DOM就绪处理程序中,在该处理程序中调用一次来初始化表单上的插件。否则,当您需要验证时,验证尚未准备就绪,并且/或者重复调用
    .validate()
    方法

  • 如果没有元素的确切名称,则不能在
    .validate()
    规则
    选项中声明规则。由于
    radnummer\u varde[]
    不是实际的
    名称
    ,因此此规则声明不起任何作用

  • 次要的一点,但您永远不应该在JavaScript中使用Allman样式的代码格式。为什么?因为。对于熟悉JavaScript更典型的1TB格式的人来说,这也使代码更难阅读


  • 动态创建元素的解决方案

    选项1:只需将规则声明与元素内联,而不是在
    .validate()中使用
    规则
    选项。对于
    required
    规则,您可以使用
    class
    或HTML5
    required
    属性,如下所示

    <input type="radio" name='radnummer_varde[1]' class="required" ...
    
    选项3:您的元素不是真正“动态”创建的,但您事先不知道确切的
    名称。使用“从开始”选择器获取所有这些元素,使用jQuery
    .each()
    将该方法应用于所有元素

    $('[name^="radnummer_varde"]').each(function() {
        $(this).rules('add', {
            required: true,
            messages: { // optional
                required: "custom message"
            }
        });
    });
    
    注释

  • 无论您如何声明规则,每个输入都必须包含
    名称
    属性

  • 使用
    .rules()
    不会否定
    .validate()
    方法的使用。在调用
    之前,您必须已在表单上调用
    .validate()
    来初始化插件