Noto'g'ri tanlangan radioboksni qaytadan jQuery?

Menda ikkita radiobuttondan tashkil topgan ariza formasini bor: bir ism uchun, quyida keltirilgan:

 
<input type="radio" name="type" value="thumb" checked />
<input type="radio" name="type" value="img" />

JQuery funktsiyasi ichida qaysi biri tekshirilayotganiga murojaat qilaman:

type=$('input[name="type"]').is(':checked').val();

Ba'zi sabablarga ko'ra, sahifada tasdiqlangan qutichni o'zgartirgan bo'lsam ham, har doim ham avvalgiga qaytsa.

Quyidagilar to'liq kodni olib tashlash uchun mo'ljallangan:

<html>
<head>
<title>Thumb/img BBCode generator</title>
<script src='https://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js'></script>
<meta http-equiv="Content-Style-Type" content="text/css" />
<link href="style.css" rel="stylesheet" type="text/css" />

</head>
<body>

Thumb/img BBCode generator for Facepunch

<div id="content">
<form id="f" action="generate2.php" method="POST">
 
<input type="radio" name="type" value="thumb" checked />
<input type="radio" name="type" value="img" />

<input type="button" value="Generate!" id="1_c"/> </form> </div> <script> $('#1_c').click(function(){ var text=$('textarea').val(), type=$('input[name="type"]').is(':checked').val(); $.post('generate2.php', { text: text, type: type }, function(data) { $("#content").html(data); }); }); function reset(){ history.go('0'); } </script> </body>

Live version: http://pdo.elementfx.com/thumb/

2
Aytganday, identifikatorlarni raqam bilan boshlash kerak emas, faqat alfavitik harf bilan.
qo'shib qo'ydi muallif Blazemonger, manba

5 javoblar

Siz kiritayotgan muammo - tanlovi mos keladigan element emas, balki boolean qiymatini qaytaradi. Buning ma'nosi: val() ni true/false tugmachasini bosib tugatish.

Quyidagi tanlash optsiyasini ishlatib ko'ring

type=$('input[name="type"]:checked').val()

Fiddle: http://jsfiddle.net/fP2P4/1/

6
qo'shib qo'ydi
@SatansFate Men javobni selektorni ko'rsatadigan skripka misoli bilan yangiladim
qo'shib qo'ydi muallif JaredPar, manba
Jonli namunadagi @SatansFate mening namunamga o'xshagan selektorda : checked sonekasiga ega emas. Buni tekshirish uchun tanlash kerak
qo'shib qo'ydi muallif JaredPar, manba
@SatansFate eh, yaxshi kodlovchi bo'lishning bir qismi bu kabi noto'g'ri xatolar qiladi. Bu faqat sodir bo'ladi (va tajriba bilan ketmaydi). :)
qo'shib qo'ydi muallif JaredPar, manba
Yo'q, yo'q ... Har safar "bosh barmog'ini" qaytaradi. Buni allaqachon sinab ko'rdim.
qo'shib qo'ydi muallif SatansFate, manba
Men savolni jonli misol bilan yangiladim - pdo.elementfx.com/thumb
qo'shib qo'ydi muallif SatansFate, manba
Argh, men kechirim so'rayman - kodlash uchun kesilmagunimcha yana bir dalil. Arxivlangan versiyani tahrir qilardim.
qo'shib qo'ydi muallif SatansFate, manba

Buning o'rniga foydalaning:

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

ni ishlatish (': belgilanadi') .val() bo'lmagan Boolean (rost/false) qiymatini qaytaradi va xatoni ishga tushiradi.

1
qo'shib qo'ydi
Xuddi shu muammoga o'xshashmi? Bu yaxshi ishlaydi: jsfiddle.net/mblase75/PEWp2
qo'shib qo'ydi muallif Blazemonger, manba

is(':checked') returns true if the element is checked. You don't want it to return true or false, you want to select the element that is checked, so use

type = $('input[name="type"]:checked').val();
1
qo'shib qo'ydi

Bundan tashqari siz $ ('input [name = "type"]]' dan foydalanishingiz mumkin. Prop ('checked'); agar xohlasangiz.

edit: http://jsfiddle.net/pVhn8/

0
qo'shib qo'ydi
nima muammo? javob berish uchun qo'shib qo'ydi.
qo'shib qo'ydi muallif jbabey, manba
Hali ham xuddi shu muammo.
qo'shib qo'ydi muallif SatansFate, manba

The is() method returns a Boolean so it's not clear how you got this statement to work: $('input[name="type"]').is(':checked').val();

Buning o'rniga $ ('input [name = "type"]: checked') dan foydalaning. Val() o'rniga.

0
qo'shib qo'ydi