Side navigation
#6338 closed feature (worksforme)
Opened March 23, 2010 06:44PM UTC
Closed November 14, 2010 02:37AM UTC
attr under chrome browser fails on 'required' attribute
Reported by: | treehousetim | Owned by: | |
---|---|---|---|
Priority: | undecided | Milestone: | |
Component: | attributes | Version: | |
Keywords: | attr chrome mac win | Cc: | |
Blocked by: | Blocking: |
Description
Using $( this ).attr( "required" ) returns true/false instead of the value of the attribute under chrome.
tested on windows (4.1.249.1036 (41514) )
and mac (5.0.307.11 beta)
test code
function validateFormFields( parentNode )
{
var result = true;
var required = "true";
var match = "";
parentNode.find( ":input:not(:button), :radio, :checkbox" ).each( function()
{
required = $( this ).attr( "required" );
console.log( $(this).attr("name"), required, typeof required );
}
}
Output:
email false boolean
phone true boolean
Expected Output:
email undefined undefined
phone no string
This is undoubtedly due to the fact that chrome implements the html 5 spec where required is a boolean attribute.
It would be nice if jquery could normalize this across browsers.
Attachments (0)
Change History (3)
Changed March 23, 2010 06:44PM UTC by comment:1
Changed March 25, 2010 02:56AM UTC by comment:2
type: | bug → feature |
---|
What's the code look like where this makes a difference? Using in a truthy/falsy way like
if ( $( this ).attr( "required" ) )fixes this. If the attribute is there and returns "required" or true (both truthy), and if it's not there it returns undefined which is falsy. Just writing the code that way will normalize this across browsers.
Changed November 14, 2010 02:37AM UTC by comment:3
priority: | → undecided |
---|---|
resolution: | → worksforme |
status: | new → closed |
.attr("required") returns the required property, which is boolean.
I meant to change this to a feature request instead of a bug report before filing it. My apologies.