Comments (4)
The readonly
attribute is not really a boolean one, because it either exists, or not.
var input = document.createElement('input');
'readonly' in input; // false
input.readonly = true;
input.outerHTML; // <input>
However, you can consider it a weird semantic exception of the standard, but since there is a mechanism in hyperHTML to deal with such cases, all I can suggest for these kind of attributes is to use the following interpolation:
hyperHTML.bind( form )`
<input type="text"
disabled=${disabled}
readonly=${readonly || null} />`;
That would cover the readonly
case 👋
from hyperhtml.
Btw. checking out #155 passing null
removes the attribute. But I thought just passing true
or false
should be sufficient?
from hyperhtml.
P.S. it looks like using readOnly
instead, which is another standard shenanigan, you should be good to go as boolean, hope this helps.
If you want to keep it even more explicit, you can write:
hyperHTML.bind( form )`
<input type="text"
disabled=${disabled}
.readOnly=${readonly} />`;
Please note the .
setter to opt in as explicit JS setters, instead of HTML attribute.
Background
There's no way I can know, given a generic attribute name, specified as lower case, if there's some variant of that attribute that once made camelCase would work as expected or not, unless I maintain the entirety of tagName => special cases somewhere, I use a dictionary to transform words on the fly, or .... nay, I ain't gonna do that.
from hyperhtml.
Thanks, I think it's completely fine that those "cases" are not covered as you've mentioned in your Background Info. It might just make sense to mention it and the workaround of using ${ readonly || null }
within the documentation. Either way if somebody else trips over this they will find this issue now 👍
from hyperhtml.
Related Issues (20)
- Booleans render as strings. In conditional rendering this can be unexpected. HOT 3
- crash in domdiff HOT 6
- Form can not have element with id of 'remove' HOT 6
- offsetWidth and offseHeight return 0 HOT 2
- What am I doing wrong? HOT 2
- Numeric input with 'value' attribute in IE11 HOT 7
- Can we use hyperhtml without bundler or any other tooling HOT 4
- Weak relation in wire method is not working HOT 4
- "original.cloneNode is not a function" using hyperhtml with basichtml HOT 2
- Only last element renders when reusing HOT 6
- Why so many projects? HOT 4
- Inline styles renders empty HOT 5
- Commuunity? HOT 9
- Is re-executing the render function locally a good practice? HOT 4
- 2.34.x is a breaking change, should be 3.0.x HOT 23
- README, dedicated forum and collective HOT 6
- Reuse Nodes also removed from new place HOT 7
- Time to drop legacy support for IE? HOT 3
- replace istanbul HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from hyperhtml.