jQuery sort losing if radio is checked or not.

Wilq32 helped me with this in the past.

http://www.experts-exchange.com/Programming/Languages/Scripting/JavaScript/Jquery/Q_24422937.html

He help me to get my inputs to retain their value when they add another item to the sort list. Now I need to do the same thing for a radio, retain if it is checked or not.

wilq32 said: "

Before $select.empty()  do:


$("#asmList0 li").each(function()
{
var value=($("input",this).attr("value"));

$("#"+this.getAttribute('rel')).attr("last",value);
});

then in addListItem do that:

change this:

 var $itemInput = $('<input type="text"/>').addClass(options.inputItemLabelClass);

to

var $itemInput = $('<input type="text"/>').addClass(options.inputItemLabelClass);
$itemInput.attr("value",$O.attr("last"));
"

As I said that works for my input item. I changed it to not select an input and instead set an id that it targets. So now I tried to get it to work for keeping the radio checked.

My code below does not work for the radio but still works for the value for the text input:
var value=($('#pageNameInput',this).attr('value'));
var radioChecked=($('.homeRadio').attr('checked'));//is the radio checked or not?
 
$("#"+this.getAttribute('rel')).attr("last",value);
$("#"+this.getAttribute('rel')).attr("radio",radioChecked);
 
and
 
var $homeRadio = $('<input type="radio"/>').addClass(options.homeRadio);
	$homeRadio.attr("id", "home_Radio");
	$homeRadio.attr("name", "home-radio");
	$homeRadio.attr("checked",$O.attr("radio"));

Open in new window

LVL 1
Shaye LarsenAsked:
Who is Participating?
 
Pawel WitkowskiConnect With a Mentor Senior Javascript DeveloperCommented:
I dont see mine changes on test case :(

Anyway I saw in debugger that function  .attr("checkRadio") returns string instead of value.... Try this. Maybe it helps




if ($O.attr("checkRadio")==="true")  $homeRadio.attr("checked",true);
0
 
Shaye LarsenAuthor Commented:
This kinda works. It checks the last added one instead of if the element was checked before
var value=($('#pageNameInput',this).attr('value'));
var radioChecked=($('.homeRadio', this).attr('checked'));//is the radio checked or not?
 
$("#"+this.getAttribute('rel')).attr("last",value);
$("#"+this.getAttribute('rel')).attr("checkRadio",radioChecked);
 
and
 
var $homeRadio = $('<input type="radio"/>').addClass(options.homeRadio);
	$homeRadio.attr("id", "home_Radio");
	$homeRadio.attr("name", "home-radio");
	$homeRadio.attr("checked",$O.attr("checkRadio"));

Open in new window

0
 
Shaye LarsenAuthor Commented:
Here is my test page:

http://dalelarsen.com/dale/sort.php
0
The new generation of project management tools

With monday.com’s project management tool, you can see what everyone on your team is working in a single glance. Its intuitive dashboards are customizable, so you can create systems that work for you.

 
Pawel WitkowskiSenior Javascript DeveloperCommented:
Your change is basically ok, one thing to change:

   $homeRadio.attr("checked",$O.attr("checkRadio"));


replace this to:

if ($O.attr("checkRadio"))  $homeRadio.attr("checked",true);




Its because  there is nothing like checked=false, its checked or nothing ;)
0
 
Shaye LarsenAuthor Commented:
Thanks for helping with this wilq32.

It still does not work though. Seems about the same.

I tried a few new things out but they didn't work.

I updated my example page,

http://dalelarsen.com/dale/sort.php
0
 
Shaye LarsenAuthor Commented:
Perfect thanks! I will be doing several other functions like this, like making it remember which <option> is selected for each select in the sort menu and such. If I need help I'll post more.
0
All Courses

From novice to tech pro — start learning today.