如果输入具有特定类,则需要更改单选值

Posted

技术标签:

【中文标题】如果输入具有特定类,则需要更改单选值【英文标题】:Need to change radio value if a input has a specific class 【发布时间】:2016-02-20 05:34:48 【问题描述】:

我很绝望。 我正在使用 Stripe Payment 插件制作信用卡自动系统,但我有点迷路了。无论如何,当信用卡是万事达卡(例如)时,输入的卡号接收“万事达卡”类 - 给它一个带有万事达卡标志的背景图像。 但我需要用它来判断无线电输入的价值。所以这是我的不起作用的代码:

HTML:

<input id="numero" type="tel" class="validate" required  name="cartaoNumero" disabled='disabled' style="transition:none;" />
<input type="radio" id="credito1" name="codigoBandeira" value="visa" />

JQUERY(或尝试):

    function mudarradio() 
        if ($("#numero").hasClass( "visa" )) 

            $('input:radio[name=codigoBandeira]').val(['visa']);

             else if ($("#numero").hasClass( "mastercard" )) 

            $('input:radio[name=codigoBandeira]').val(['mastercard']);
        
        $('body').on('mouseenter', mudarradio);
    ;

就像,当用户使用万事达卡号码时,#numero 输入接收mastercard 类。 即使#numero 具有不同的类,也不会发生任何事情... 好的,我知道,这是一团糟。但是我是前端程序员,所以..帮助!!!!

【问题讨论】:

你已经解释了你需要什么,但你还没有解释实际问题,也在你的mudarradio函数中你绑定mouseenter事件但是jQuery会继续重新绑定这个每个函数调用所以我'不确定这是否是个好主意(例如,当将鼠标悬停在地址栏上并返回网站时,这将复制处理程序) 我的问题是收音机值没有改变。即使#numero 有不同的课程,也不会发生任何事情......我将使用这些新信息编辑我的问题。 这是你需要的吗@Igor : jsfiddle.net/Hjdnw/1572 所以,将第一个输入类更改为 mastercard 并再次运行代码,您会看到收音机的值没有任何变化。 您需要从 val(['mastercard']); 中删除括号和 val(['签证']);像 val('visa');和 val('万事达卡');让它工作@Igor 【参考方案1】:

我将从更改此行开始$('body').on('mouseenter', mudarradio);

目标是改变输入框,而不是鼠标进入正文?你这样设置有什么原因吗?试试这个

$('#numero').on('change', mudarradio);

【讨论】:

这个点很好,真的更好,我改一下。但是如何解决无线电不变的价值? 我不确定通过设置单选按钮的 val 来实现什么。单选按钮被选中或未选中。如果这是我的页面,我将为每个潜在值设置一个单独的单选按钮,然后选择适当的单选按钮,如 $(':radio[value=mastercard]').prop('checked', true); 相信我,天地间的事物比你的哲学梦想的还要多。我根据一些单选按钮制作了一个动画,后端程序员制作了表单所必需的这些单选按钮(其唯一功能是使动画工作)...... @godmode:我相信这个评论是给我的:D Idk,我真的很困惑哈哈哈。无论如何,解决了!谢谢你,godmode 和 Amit!

以上是关于如果输入具有特定类,则需要更改单选值的主要内容,如果未能解决你的问题,请参考以下文章

如果光标具有特定值,则更改 ListView 中的图像

如果 ID 在任何行中具有特定值,则更改值

如何将输入单选值输入 C#

如果存在则更改表,如果不存在则创建

IE - 如果选择框具有特定类,则阻止焦点(单击,双击)

如果我检查 2 输入单选,则禁用的提交按钮会启用,但如果我取消选中它们...提交按钮不会重新禁用