Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

120
Views
.attr('marcado','marcado') no funciona

Estoy tratando de comprobar la radio. Tampoco funcionan los siguientes:

[editar]

 $('selector').attr('checked','checked'); $('selector').attr('checked',true);

Las dos alertas() en el siguiente código muestran "1" y "a", respectivamente. Mi expectativa es que la segunda alerta () muestre "b".

Opera marca la segunda casilla de radio en su navegador, pero su inspector de elementos, dragonfly, muestra que el DOM no ha cambiado.

[finalizar edición]

Había leído las preguntas frecuentes antes de publicar esta pregunta:

http://docs.jquery.com/Frequently_Asked_Questions#How_do_I_check.2Funcheck_a_checkbox_input_or_radio_button.3F

¡Las ayudas serán muy apreciadas!

AIT

La página xhtml y el código son los siguientes:

 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title>Weird Behavior</title> <script type="text/javascript" src="scripts/jquery.js"/> <script type="text/javascript"> function clickme(){ alert($('input[name="myname"][value="b"]').length); $('input[name="myname"][value="b"]').attr('checked','checked'); $('#b').attr('checked',true); alert($('input[name="myname"][checked]').val()); }; </script> </head> <body> <form action=""> <fieldset> <legend>Why check is not switched?</legend> <input type="radio" name="myname" value="a" id="a" checked="checked"/>A <input type="radio" name="myname" value="b" id="b"/>B </fieldset> </form> <p> <button type="button" onclick="clickme()">click me</button> </p> </body> </html>
over 4 years ago · Santiago Trujillo
3 answers
Answer question

0

 $('.checkbox').attr('checked',true);

no funcionará con jQuery 1.6 .

En su lugar, use

 $('.checkbox').prop('checked',true); $('.checkbox').prop('checked',false);

La explicación/ejemplos completos y la demostración se pueden encontrar en la documentación de la API de jQuery https://api.jquery.com/attr/

over 4 years ago · Santiago Trujillo Report

0

Con jQuery, nunca use javascript onclick en línea. Mantenlo discreto. Haga esto en su lugar y elimine el onclick completo.

Además, tenga en cuenta el uso del :checked en la última línea. La razón de esto es que una vez que se carga la página, el html y el estado real del elemento del formulario pueden ser diferentes. Abra un inspector web y puede hacer clic en el otro botón de radio y el HTML aún mostrará que el primero está marcado. En cambio, el selector :checked filtra los elementos que están realmente marcados, independientemente de cómo comenzó el html.

 $('button').click(function() { alert($('input[name="myname"][value="b"]').length); $('input[name="myname"][value="b"]').attr('checked','checked'); $('#b').attr('checked',true); alert($('input[name="myname"]:checked').val()); });

http://jsfiddle.net/uL545/1/

over 4 years ago · Santiago Trujillo Report

0

$('.checkbox').prop('checked',true); $('.checkbox').prop('checked',false);

... funciona perfectamente con jquery1.9.1

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!