peter-cooper
asked on
Radio button change event triggering msg on wrong condition
I am using a simple radio button change event so when a button is clicked, it should evaluate one of the conditions. However, what is happening, is that 'notif' is still firing the msg even if the condition is 'New Intake'. The msg should only be triggered if the condition == 'New Intake with Files'.
It seems to be totally ignoring this condition altogether. I have been struggling with this for some time now and would be grateful if someone could point out my error. Many thanks.
html
It seems to be totally ignoring this condition altogether. I have been struggling with this for some time now and would be grateful if someone could point out my error. Many thanks.
$(function() {
$('input:radio[name="activity"]').change(function(){
if($(this).val() == 'New Intake with Files'){
//alert("new intake with files");
$('#box_add').on('blur',function(){
$(this).attr('readonly','readonly'); //or use disabled
$('#bfile_add').removeAttr('disabled'); //or use readonly
// SHOULD ONLY DISPLAY IF THIS CONDITION IS MET
notif({
msg: "Please Only input 1 box per file submission. Each box will hold approx 20 files. Thank you.",
type: "boxdstrError",
position: "center",
width: 490,
height: 75,
multiline: true,
timeout: 6000,
opacity: 0.8,
fade: 10,
});
});
} else
if($(this).val() == 'New Intake'){
//alert("new intake");
// NOTIF MSG SHOULD NOT DISPLAY IF THIS CONDITION IS MET
$('#box_add').on('focus',function(){
$(this).removeAttr('readonly'); //or use disabled attribute
$('#bfile_add').attr('disabled', 'disabled'); //or use readonly
});
}
});
});
html
<div class="fieldset">
<h1><span>Activity Type</span></h1>
<p>
<input id="activity" name="activity" class="css-checkbox" type="radio" value="New Intake" checked="checked" />
<label for="activity" class="css-label"></label>
<a href="javascript:void(0)" class="tooltip" title="Choose this option to put new boxes into storage.">New Intake</a>
<br />
<input id="activity1a" name="activity" type="radio" class="css-checkbox" value="New Intake with Files" />
<label for="activity1a" class="css-label"></label>
<a href="javascript:void(0)" class="tooltip" title="Choose this option to put new files into storage together with your box.">New Intake With Files</a>
</p>
</div>
<input class="boxadd" id="box_add" name="box_add[]" type="text" required="required" style="width:250px; height:30px;" />
<input name="bfile_add[]" id="bfile_add" type="text" disabled style="width:250px; height:30px;" />
Agree with Tom on this - the blur event handler seems a bit lost and out of place in the middle of the click event handler - not clear what it is you are trying to achieve.
From your code it looks like you can completely remove the .blur event handlers from the code and you should have pretty much what you want.
From your code it looks like you can completely remove the .blur event handlers from the code and you should have pretty much what you want.
Also having a seperate event inside another event will cause that nested event to be added again and again each time you change the radio button i.e. you would end up with multiple blur events firing.
ASKER
@Tom
basically, when a user clicks the 'New Intake With Files' button, make box_add readonly after users have finished typing. Then enable '#bfile_add' for input. If the user clicks or tries to type then the notif msg is fired.
If a user clicks 'New Inatke' then do the reverse but with no msg. Hope that is clearer. Thanks
basically, when a user clicks the 'New Intake With Files' button, make box_add readonly after users have finished typing. Then enable '#bfile_add' for input. If the user clicks or tries to type then the notif msg is fired.
If a user clicks 'New Inatke' then do the reverse but with no msg. Hope that is clearer. Thanks
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Good advice @Michel. I guess that's what experience will do for you. I'll keep my day job for a while longer.
ASKER
Thank you very much.
If you can explain what you want to happen maybe we can straighten out the logic.