Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/80.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
如何创建自动选择单选按钮的html/javascript表?_Javascript_Html_Css - Fatal编程技术网

如何创建自动选择单选按钮的html/javascript表?

如何创建自动选择单选按钮的html/javascript表?,javascript,html,css,Javascript,Html,Css,我对html/javascript只有非常基本的理解 我正在尝试对现有代码进行可能只是轻微的修改。下面是,首先是原始代码,然后是我想如何更改它 原始代码: 表格为用户提供了几行的左右选择。该表最多强制执行一个从左到右沿表向下的切换点,这意味着如果用户在某一行选择右,则表会自动为下面的所有行选择右,如果用户在给定行选择左,则表会自动为上面的所有行选择左。不允许任何切换点(表示所有行均选择左侧,或所有行均选择右侧)。每一行都需要一个选项(默认情况下,应用程序已经对此进行了检查) {{block c

我对html/javascript只有非常基本的理解

我正在尝试对现有代码进行可能只是轻微的修改。下面是,首先是原始代码,然后是我想如何更改它

原始代码: 表格为用户提供了几行的左右选择。该表最多强制执行一个从左到右沿表向下的切换点,这意味着如果用户在某一行选择右,则表会自动为下面的所有行选择右,如果用户在给定行选择左,则表会自动为上面的所有行选择左。不允许任何切换点(表示所有行均选择左侧,或所有行均选择右侧)。每一行都需要一个选项(默认情况下,应用程序已经对此进行了检查)

{{block content}
方案A
方案B
{{对于玩家中的金额。右侧金额}
{{player.left_side_amount}现在开始
{{amount}}下个月
{{endfor}}
{{formfield_errors'switching_point'}}
{{下一个按钮}
{{endblock}}
{{块脚本}}
$(文档).ready(函数(){
$('input[type=radio]')。更改(
函数(){
var clickedRadio=此;
var afterClickedRadio=false;
var radios=document.querySelectorAll('input[type=radio]');
对于(i=0;i{{endblock}
这是怎么回事?如果我理解正确,那么规则是:

  • 选择A将检查所有A输入
  • 选择B将检查所有B输入
  • 选择X将使X选择下方的所有输入与第一个选中的输入相反,并且X选择上方的所有内容默认为第一个选中的输入选择。(如果是A,则在X之后是B。如果是B,则在X之后是A)
  • 防止选择多个X。如果多个X,则以最后选中的X为准,前一个X根据规则3进行更改
  • 除了这些规则之外,我还禁用了第一个和最后一个中间输入,因为您没有说明如果检查了第一个或最后一个中间输入会发生什么。此外,我还添加了逻辑,防止用户在选择任何其他输入之前检查任何中间输入,因为您也没有说明在这种情况下会发生什么

    有些边缘案例我没有编写代码,但这足以涵盖您的规则

    
    A.
    X
    B
    
    var header_row=document.queryselectoral('table tr th');
    变量列={
    “左”:行[0]的标题。innerText,
    “中间”:标题\行[1]。innerText,
    “右”:标题\行[2]。innerText
    };
    var radios=document.querySelectorAll('input[type=“radio”]”);
    var rows=document.querySelectorAll('table tr');
    数组.from(无线电).forEach(功能(无线电){
    radio.addEventListener('click',函数(事件){
    var比选中的列多。querySelectorAll('input[type=“radio”][value=“”+column.middle+'”]:选中')。长度>1;
    如果(是否选中了一列中间列===true){
    //在选中中间列的情况下循环所有无线电输入
    Array.from(document.querySelectorAll('input[type=“radio”][value=“”+column.middle+']:checked')).forEach(函数(输入){
    如果(输入!==event.target){input.checked=false;}
    });
    }
    var current_row_index=Array.from(rows).findIndex(函数(row){
    var current_input=Array.from(row.querySelectorAll('td input[type=“radio”])).find(函数(input){
    返回输入===event.target;
    });
    return!!当前输入;
    });
    var middle\u selected\u input\u row\u index=Array.from(rows).findIndex(函数(row){
    返回row.querySelector('input[type=“radio”][value=“”+column.middle+'“])?。checked==true;
    });
    var为_middle_input_selected=middle_selected_input_row_index>-1;
    让第一个输入列=行[1]。querySelector('input[type=“radio”]:checked')?。value | |';
    //如果第一个输入未被检查,但其他地方的中间输入已被检查
    如果(!first\u input\u column&&is\u middle\u input\u selected==true){
    //取消选中当前输入,并在此处停止脚本;如果脚本继续运行,它将遇到空错误
    回归前夜