单选按钮是表单中使用的元素。它们让用户只选择有限数量的选项中的一个。
Next/React.js 中页面重新加载后,默认选定的单选按钮消失
通过路由器链接(从“next/link”作为链接导入)导航到页面时,默认选择工作正常。但是,当页面重新加载时,默认选择的选项会立即出现...
我需要从'@mui/icons-material/CheckCircleSharp'添加CheckCircleSharpIcon而不是项目符号图标 {res?.map((radiooption, 索引) => ( <> 我需要从'@mui/icons-material/CheckCircleSharp'添加CheckCircleSharpIcon而不是项目符号图标 {res?.map((radiooption, index) => ( <> <RadioGroup aria-labelledby="demo-radio-buttons-group-label" name="radio-buttons-group" className={classes.radioGroup} value={value} onChange={handleChange} key={radiooption.secondaryRadioName} > <FormControlLabel className={classes.radioButton} value= {radiooption?.secondaryRadioName} control={<Radio />} label={<span dangerouslySetInnerHTML={{ __html: radiooption?.secondaryRadioName }}/>} /> </RadioGroup> </> ))} 根据 API,您可以利用其 checkedIcon 属性,因此 Radio 组件应该如下所示 <Radio checkedIcon={<CheckCircleIcon />} /> 链接到checkedIcon道具信息:https://mui.com/material-ui/api/radio/#Radio-prop-checkedIcon CodeSandbox 工作演示:https://codesandbox.io/s/bold-cloud-xhylt5?file=/Demo.tsx:718-761
在我的角度应用程序中,我只是尝试创建多个单选按钮组。一个组看起来像这样: 在我的角度应用程序中,我只是尝试创建多个单选按钮组。一组看起来像这样: <input [formControl]="ctrlx" type="radio" [value]="true" id="idx" autocomplete="off"/> <label for="idx">Yes</label> <input [formControl]="ctrlx" type="radio" [value]="false" id="idy" autocomplete="off" /> <label for="idy">No</label> 演示 奇怪的是,正如您在演示中看到的那样,当您单击其中一个收音机时,其他所有收音机也会发生变化。不知何故,我的无线电组已连接。有什么建议我在这里做错了吗? 只需给每个组一个唯一的名称 <div> <input [formControl]="ctrlx" type="radio" [value]="true" id="idx" name="a" autocomplete="off"/> <label for="idx">Yes</label> <input [formControl]="ctrlx" type="radio" [value]="false" id="idy" name="a" autocomplete="off" /> <label for="idy">No</label> </div>
我有一个表单中的单选按钮列表。 所需品种(如果有) ... 我有一个表单中的单选按钮列表。 <h6>Desired breed (if any)</h6> <div className="radio container-fluid"> <label> <input type="radio" className="checkbox" name="Breed" onClick={(e) => setBreed(e.target.value)} /> <p className="checkbox">Goldendoodle</p> </label> <label> <input type="radio" className="checkbox" name="Breed" onClick={(e) => setBreed(e.target.value)} /> <p className="checkbox">English Goldendoodle</p> </label> <label> <input type="radio" className="checkbox" name="Breed" onClick={(e) => setBreed(e.target.value)} /> <p className="checkbox">Labradoodle</p> </label> <label> <input type="radio" className="checkbox" name="Breed" onClick={(e) => setBreed(e.target.value)} /> <p className="checkbox">Poodle</p> </label> <label> <input type="radio" className="checkbox" name="Breed" onClick={(e) => setBreed(e.target.value)} /> <p className="checkbox">Other</p> </label> <label> <input type="radio" className="checkbox" name="Breed" onClick={(e) => setBreed(e.target.value)} /> <p className="checkbox">No preference</p> </label> </div> </label> </div> 我想做的是将 Breed 变量设置为所选复选框的值。问题是我得到的值是 on,而不是标签上的内容。 我无法更改单选按钮的名称属性,因为我一次只需要选择一个。 (我也愿意接受其他方法来实现这一目标)。 尝试像这样改变onClick: onClick={(e) => setBreed(e.target.nextSibling.textContent)} <input type="radio" />元素没有任何值,这就是使用"on"的原因。当为每个 value 提供 <input /> 属性时,您可以看到状态正确更新。 这还允许您将实际值与显示的标签分开。例如,假设您的界面有多种语言版本。在这种情况下,您将为每种语言使用不同的标签,但值将保持不变。 function App() { const [breed, setBreed] = React.useState(null); console.log(breed); return ( <div> <h6>Desired breed (if any)</h6> <div className="radio container-fluid"> <label> <input type="radio" className="checkbox" name="Breed" value="Goldendoodle" onClick={(e) => setBreed(e.target.value)} /> <p className="checkbox">Goldendoodle</p> </label> <label> <input type="radio" className="checkbox" name="Breed" value="English Goldendoodle" onClick={(e) => setBreed(e.target.value)} /> <p className="checkbox">English Goldendoodle</p> </label> <label> <input type="radio" className="checkbox" name="Breed" value="Labradoodle" onClick={(e) => setBreed(e.target.value)} /> <p className="checkbox">Labradoodle</p> </label> <label> <input type="radio" className="checkbox" name="Breed" value="Poodle" onClick={(e) => setBreed(e.target.value)} /> <p className="checkbox">Poodle</p> </label> <label> <input type="radio" className="checkbox" name="Breed" value="Other" onClick={(e) => setBreed(e.target.value)} /> <p className="checkbox">Other</p> </label> <label> <input type="radio" className="checkbox" name="Breed" value="No preference" onClick={(e) => setBreed(e.target.value)} /> <p className="checkbox">No preference</p> </label> </div> </div> ); } ReactDOM.render(<App />, document.querySelector("#root")); <script crossorigin src="https://unpkg.com/react@17/umd/react.production.min.js"></script> <script crossorigin src="https://unpkg.com/react-dom@17/umd/react-dom.production.min.js"></script> <div id="root"></div>
我无法在输入类型上动态分配值:radio / Angular
我很迷失,我正在尝试根据网址动态构建表单的模板,但由于某种原因我无法在单选类型输入上设置属性值。 表单蛋糕 html 我很迷失,我正在尝试根据网址动态构建表单的模板,但由于某种原因我无法在单选类型输入上设置属性值。 form-cake html <form [formGroup]="formCake" (ngSubmit)="onSubmit()"> <ng-container *ngFor="let template of formTemplate"> <label for="{{template.id}}">{{template.label}}: </label> <input id="{{template.id}}" type="{{template.type}}" [name]="template.name" [formControlName]="template.name" [attr.value]="(template.type === 'radio') ? template.value: null"> </ng-container> 形成蛋糕组件 ngOnInit(): void { this.formCake = this.formService.formControllerSetup(); this.formTemplate = this.formService.formHtmlSetup(); 表单服务 formControllerSetup(): FormGroup { return this.fb.group({ name: ['', Validators.required], description: ['', [Validators.required]], image: ['', Validators.required], price: [+'', Validators.required], cakeType: [null, Validators.required], allergies: this.fb.group({ cereal: [false], nuts: [false], eggs: [false], milk: [false], soy: [false], peanuts: [false], sulfite: [false], // ... Ajoute d'autres allergies ici }) }); } formHtmlSetup() { let fields!: any[]; return fields = [ { type: 'text',id: 'name',name: 'name', label: 'Name', validation: { required: true } }, { type: 'text',id: 'description', name: 'description', label: 'Description', validation: { required: true } }, { type: 'text',id: 'image', name: 'image', label: 'Image', validation: { required: true } }, { type: 'number',id: 'price', name: 'price', label: 'Price', validation: { required: true } }, { type: 'radio',id: 'pm', name: 'cakeType', label: 'Pm', validation: { required: true } }, { type: 'radio',id: 'pie', name: 'cakeType', label: 'Pie', validation: { required: true } }, ] } 我正在服务内构建模板,将其注入到组件内,然后在 formTemplate 上循环以获取 HTML 中的所有字段。 <input id="{{template.id}}" type="{{template.type}}" [name]="template.name" [formControlName]="template.name" [attr.value]="template.id"> 我确实尝试过 [value]="template.id"/ value="{{template.id}}" 但只有这个版本可以工作[attr.value]="template.id"。知道原来有一个三元 [attr.value]="(template.type === 'radio') ? template.id: null" 过滤其他字段。 但是像这样,我可以看到其他输入正在更新,但无线电类型没有更新。 也许我累了,但不知道该往哪里看。 恐怕您无法使用 FormControlName 将类型单选和值动态分配给输入。我认为你唯一能做到的就是使用两个 *ngIf (一个用于输入类型无线电,另一个用于其余) <form [formGroup]="formCake"> <ng-container *ngFor="let template of formTemplate"> <label for="{{template.id}}">{{template.label}}: </label> <input *ngIf="template.type==='radio'" [id]="template.id" type="radio" [name]="'_'+template.name" [value]="template.type == 'radio' ? template.id: null" [formControlName]="template.name" /> <input *ngIf="template.type!=='radio'" id="{{template.id}}" [type]="template.type" [name]="'_'+template.name" [value]="template.type == 'radio' ? template.id: null" [formControlName]="template.name" /> </ng-container> </form>
我在jsp中有一个页面,其中我在表中动态显示数据库中的记录,并生成动态行。每行都有一个单选按钮,以便用户可以选择...
我正在 R Studio 中构建一个带有闪亮的网络平台。我被困在单选按钮选择中设置换行符,因为我需要将长选择名称与方法名称放在一起。这是示例代码。
有没有一种方便的(内在的)方法来访问单选按钮(tkinter,python)的属性? 我不仅在 Stackoverflow 上认真搜索,还在互联网上进行了认真的搜索,有很多类似的问题,但答案...
我是 Streamlit 的新手。我想进行多项选择用户输入(复选框)。但我想从 4 个选项中最多选择 3 个。 我尝试过多选的下拉功能。
我不知道为什么,但单选按钮组单独显示按钮/标签和单选按钮,与引导网站上的示例不同 代码只是从引导程序复制粘贴的(...
Bootstrap 5 单选切换按钮 btn-check 与 btn-sm 类
我试图将 btn-check 类与 btn-sm 一起使用来获得更小的按钮,但它忽略了小类。我错过了什么或者有其他方法可以让按钮变小吗? 我正在尝试使用 btn-check 类和 btn-sm 来获得更小的按钮,但它忽略了小类。我错过了什么还是有其他方法可以让按钮变小? <link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet"/> <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js"></script> <div class="row g-2 mx-2 my-2"> <div class="btn-group col-6" role="group"> <input type="radio" class="btn-check btn-sm" name="option" id="option-1" value="yes"> <label class="btn btn-outline-success" for="option-1">Yes</label> <input type="radio" class="btn-check btn-sm" name="option" id="option-2" value="na"> <label class="btn btn-outline-secondary" for="option-2">I Don't Know</label> <input type="radio" class="btn-check btn-sm" name="option" id="option-3" value="no"> <label class="btn btn-outline-danger" for="option-3">No</label> </div> </div> 给你... 从 btn-sm 元素中删除 <input> 类。 将 btn-sm 类添加到 <div class="btn-group col-6" role="group"> 和所有三个 <label> 元素。 请参阅下面的片段。 <link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet" /> <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js"></script> <div class="row g-2 mx-2 my-2"> <div class="btn-group col-6 btn-sm" role="group"> <input type="radio" class="btn-check" name="option" id="option-1" value="yes" /> <label class="btn btn-outline-success btn-sm" for="option-1">Yes</label> <input type="radio" class="btn-check" name="option" id="option-2" value="na" /> <label class="btn btn-outline-secondary btn-sm" for="option-2">I Don't Know</label> <input type="radio" class="btn-check" name="option" id="option-3" value="no" /> <label class="btn btn-outline-danger btn-sm" for="option-3">No</label> </div> </div> 您也可以将 div 中的 btn-group 类更改为 btn-group-sm。 <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js"></script> <link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet"/> <div class="row g-2 mx-2 my-2"> <div class="btn-group-sm col-6" role="group"> <input type="radio" class="btn-check" name="option" id="option-1" value="yes" /> <label class="btn btn-outline-success" for="option-1">Yes</label> <input type="radio" class="btn-check" name="option" id="option-2" value="na" /> <label class="btn btn-outline-secondary" for="option-2">I Don't Know</label> <input type="radio" class="btn-check" name="option" id="option-3" value="no" /> <label class="btn btn-outline-danger" for="option-3">No</label> </div> </div>
Angular Material 单选按钮组需要验证不起作用
我试图在用户单击“提交”时验证单选按钮组。文本字段和下拉列表在无效时显示红色,但单选按钮颜色在无效时不会更改。有什么建议吗?...
我需要对一些无线电输入进行风格化。我从这里尝试了一些解决方案,但没有一个对我有用。有人可以看一下这段代码并告诉我我能做什么吗? 这是 HTML: 我需要对一些 radio 输入进行样式化。我从这里尝试了一些解决方案,但没有一个对我有用。有人可以看一下这段代码并告诉我我能做什么吗? 这是 HTML: <div class="controls"> <table> <tbody> <tr> <td> <label class="radio"> <input type="radio" name="ad_caroserie" value="0">Berlina </label> </td> <td> <label class="radio"> <input type="radio" name="ad_caroserie" value="1">Break </label> </td> <td> <label class="radio"> <input type="radio" name="ad_caroserie" value="2">Cabrio </label> </td> </tr> </tbody> </table> </div> 还有 CSS: label.radio { background: #fcb608; } .radio input { display: none; } label.radio input[type="radio"]:checked + label { background: #000 !important; border: 1px solid green; padding: 2px 10px; } CSS没有达到预期的效果;你能帮我吗? 这是JS的一些相关摘录: // If checkboxes or radio buttons, special treatment else if (jQ('input[name="'+parentname+'"]').is(':radio') || jQ('input[name="'+parentname+'[]"]').is(':checkbox')) { var find = false; var allVals = []; jQ("input:checked").each(function() { for(var i = 0; i < parentvalues.length; i++) { if (jQ(this).val() == parentvalues[i] && find == false) { jQ('#adminForm #f'+child).show(); jQ('#adminForm #row_'+child).show(); find = true; } } }); if (find == false) { jQ('#adminForm #f'+child).hide(); jQ('#adminForm #row_'+child).hide(); //cleanup child field if (jQ('#adminForm #f'+child).is(':checkbox') || jQ('#adminForm #f'+child).is(':radio')) { jQ('#adminForm #f'+child).attr('checked', false); } else { if (cleanValue == true) { jQ('#adminForm #f'+child).val(''); } } } } else { var find = false; for(var i = 0; i < parentvalues.length; i++) { if (jQ('#adminForm #f'+parentname).val() == parentvalues[i] && find == false) { jQ('#adminForm #f'+child).show(); jQ('#adminForm #row_'+child).show(); find = true; } } if(find == false) { jQ('#adminForm #f'+child).hide(); jQ('#adminForm #row_'+child).hide(); // cleanup child field if (jQ('#adminForm #f'+child).is(':checkbox') || jQ('#adminForm #f'+child).is(':radio')) { jQ('#adminForm #f'+child).attr('checked', false); } else { if (cleanValue == true) { jQ('#adminForm #f'+child).val(''); } } } } } function dependency(child,parentname,parentvalue) { var parentvalues = parentvalue.split(","); // if checkboxes jQ('input[name="'+parentname+'[]"]').change(function() { checkdependency(child,parentname,parentvalues,true); //if checkboxes jQ('input[name="'+child+'[]"]').change(); jQ('input[name="'+child+'"]').change(); jQ('#'+child).change(); }); // if buttons radio jQ('input[name="'+parentname+'"]').change(function() { checkdependency(child,parentname,parentvalues,true); // if checkboxes jQ('input[name="'+child+'[]"]').change(); jQ('input[name="'+child+'"]').change(); jQ('#'+child).change(); }); jQ('#f'+parentname).click(function() { checkdependency(child,parentname,parentvalues,true); // if checkboxes jQ('input[name="'+child+'[]"]').change(); jQ('input[name="'+child+'"]').change(); jQ('#f'+child).change(); }); checkdependency(child,parentname,parentvalues,false); } 一种可能性 在我发帖时,我不太确定所需的布局应该是什么,但尝试的 CSS 中有一个具体问题需要解决。 相邻兄弟选择器: ...分隔两个选择器,并且仅当第二个元素紧跟在第一个元素之后时才匹配第二个元素。 如果 <input> 是 <label> 的子级,则它不相邻,因此 while: label.radio input[type="radio"]:checked + label 正在寻找紧随 label :checked 内的 input 中的 label,并且类为 .radio,不存在类似的情况。 在这种情况下,要更改 label 的样式,需要一个影响父级的选择器,而目前不可能。 因此,要选择 label :checked 中的 input,我们需要 label 相邻,而不是父级。 我们可以使用 for="id" 属性: A <label> 可以通过将控制元素放置在 <label> 元素内或使用 for 属性与控件关联。 正如我所说,我不太确定所需的布局应该是什么,但这里有一个使用 for 属性的示例,看起来还不错。 div { display: inline-block; position: relative; } label { background: #fcb608; padding: 2px 10px 2px 1.5em; border: 1px solid transparent; /* keeps layout from jumping */ } input { position: absolute; } input[type="radio"]:checked + label { background: #000; border-color: green; color: white; } <div> <input id="id1" type="radio" name="ad_caroserie" value="0"> <label for="id1" class="radio">Berlina</label> </div> <div> <input id="id2" type="radio" name="ad_caroserie" value="1"> <label for="id2" class="radio">Break</label> </div> <div> <input id="id3" type="radio" name="ad_caroserie" value="2"> <label for="id3" class="radio">Cabrio</label> </div> 与 <input> 作为 <label> 的孩子 使用小型 JavaScript 处理程序 监听 更改到<form>。 如果检测到 change,触发的函数会检查 <input type="radio"> 是否已更改,如果是,则检查其 <label> 是否为 parentElement。 如果这是真的,它会检查是否存在同名的 <input type="radio">,它是具有 <label> class 的 .checked 元素的子元素。 如果有,它会从 class 中删除 <label>,然后将相同的 class 应用于触发整个事件的 <label> <input> 的 target 父级。 let form = document.querySelector( "form" ); form.addEventListener( "change", ( evt ) => { let trg = evt.target, trg_par = trg.parentElement; if ( trg.type === "radio" && trg_par && trg_par.tagName.toLowerCase() === "label" ) { let prior = form.querySelector( 'label.checked input[name="' + trg.name + '"]' ); if ( prior ) { prior.parentElement.classList.remove( "checked" ); } trg_par.classList.add( "checked" ); } }, false ); label { background: #fcb608; padding: 2px 10px 2px 0; border: 1px solid transparent; /* keeps layout from jumping */ } label.checked { background: #000; border-color: green; color: white; } <form> <label class="radio"><input type="radio" name="ad_caroserie" value="0">Berlina</label> <label class="radio"><input type="radio" name="ad_caroserie" value="1">Break</label> <label class="radio"><input type="radio" name="ad_caroserie" value="2">Cabrio</label> </form> 如果没有 JavaScript,事情就会变得困难(根据我最初的解释,为什么在这种情况下最好使用 for 属性)。 我们可以使用 appearance 属性(带有前缀和合理的支持)来有效隐藏用户代理 radio GUI,然后使用剩余的 faceless 元素构建一个 fake background 对于 <label>。 这是非常老套的,并且比默认的动态性要差很多,因为需要一些absolute定位和特定尺寸才能实现它。 它有点有效(在大多数浏览器中),但在站点范围内实施很棘手。 不过有一些可以玩的东西:-) input { position: absolute; -webkit-appearance: none; -moz-appearance: none; appearance: none; width: 5em; height: 1.5em; z-index: -1; background: #fcb608; border: 1px solid transparent; margin: -.1em -.8em; outline: 0; } label { display: inline-block; width: 5em; color: white; text-shadow: 1px 1px 0px black; } input[type="radio"]:checked { background: #000; border-color: green; } <label class="radio"><input type="radio" name="ad_caroserie" value="0">Berlina</label> <label class="radio"><input type="radio" name="ad_caroserie" value="1">Break</label> <label class="radio"><input type="radio" name="ad_caroserie" value="2">Cabrio</label> 只需将 jQuery 与新的 css 类“selected”一起使用,如下所示: 开始时: $("input[name='ad_caroserie']:checked").parent().addClass("selected"); 和变化: $('input[type=radio][name=ad_caroserie]').change(function() { $("input[name='ad_caroserie']").parent().removeClass("selected"); $("input[name='ad_caroserie']:checked").parent().addClass("selected"); // console.log($("input[name='ad_caroserie']:checked").val()); }); 在尝试了很多次纯 HTML 和 CSS 之后。我正在用 JavaScript 解决这个简单的解决方案。我认为这会有所帮助。 function check(btn) { let label = btn.children; label[0].checked = true; } .lib-radio { color: #1e1e1e; font-size: 1.0em; border-radius: 31px; font-weight: 400; width: 450px; height: 40px; border: 2px solid black; padding: 0.5em; font-family: Lato; margin: 10px 0 0 0; } .lib-radio:hover { background-color: #000; color: #FFF; } <div class="lib-one-input"> <p class="lib-form-label">Select your gender</p> <div class="lib-radio" onclick="check(this)"> <input id="s1yes" type="radio" name="mcq1" value="male"> <label for="s1yes"> Yes, our researchers authored it</label><br /> </div> <div class="lib-radio" onclick="check(this)"> <input id="s1no" type="radio" name="mcq1" value="female"> <label for="s1no"> No, we didn't author it </label><br /> </div> </div> <form id="button-form"> <fieldset id="button-set"> <label for="button-1"> <input type="radio" id="button-1" name="button-group"/> </label> <label for="button-2"> <input type="radio" id="button-2" name="button-group"/> </label> <label for="button-3"> <input type="radio" id="button-3" name="button-group"/> </label> </fieldset> </form> <style> #button-set label > * { opacity: 0; <!-- hideing the radio buttons --> } </style> <script> function setColor(color) { document.getElementsByName("button-group").forEach(node => { node.checked === true ? (node.parentElement.style.background = color) : (node.parentElement.style.background = "rgba(0, 0, 0, 0.5)"); }); } window.onload = () => { document.getElementById("button-form").onchange = evt => { switch (evt.target) { case document.getElementsById("button-1"): setColor("rgba(0, 150, 0, 0.5)"); break; case document.getElementsById("button-2"): setColor("rgba(250, 200, 0, 0.5)"); break; case document.getElementsById("button-3"): setColor("rgba(250, 0, 0, 0.5)"); break; } }; }; </script>
如何更改.Net MAUI中ContentPresenter的文本颜色
我在我的应用程序中使用了自定义样式的单选按钮,它使用 ContentPresenter 来显示文本/内容。我想更改文本的颜色。 我尝试过 TextColor 和 TextBlock。
我有一个带有单选按钮的简单的 Angular Reactive 表单。当我使用 formControl 更改选定的单选按钮值时,更改事件不会触发。还有其他事件会触发...
我正在开发一个非常旧的网站,尝试更新它以便屏幕阅读器用户可以访问。特别是,我试图找出对一些单选按钮进行编码的最佳方法,其中是/否值
Acrobat X Pro Javascript 如何让单选按钮导致计算字段添加另一个计算
我有几个格式化为数字的文本字段。每个文本字段都由一组单选按钮填充,从而可以选择数字。最终的文本字段设置为一个简单的“值我...
所以,我正在制作一张地图,可以使用一种方法对每一层的数据进行分类。但是现在,我也希望用户能够根据自己的意愿选择方法。 我想创建三个收音机
我正在为 chrome 浏览器写一个扩展。将带有两个自定义复选框和标签的块添加到我需要的页面。问题是在缩放页面的时候,ra的内部选择...
我在一组中有两个单选按钮,我想使用 JQuery 检查单选按钮是否被选中,如何?