Merge pull request #1828 from spacejack/option-empty-string
Fix select option to use empty string value, add tests.
This commit is contained in:
commit
8191f7894c
2 changed files with 42 additions and 1 deletions
|
|
@ -481,7 +481,7 @@ module.exports = function($window) {
|
||||||
//setting select[value] to same value while having select open blinks select dropdown in Chrome
|
//setting select[value] to same value while having select open blinks select dropdown in Chrome
|
||||||
if (vnode.tag === "select" && key === "value" && vnode.dom.value == value && vnode.dom === $doc.activeElement) return
|
if (vnode.tag === "select" && key === "value" && vnode.dom.value == value && vnode.dom === $doc.activeElement) return
|
||||||
//setting option[value] to same value while having select open blinks select dropdown in Chrome
|
//setting option[value] to same value while having select open blinks select dropdown in Chrome
|
||||||
if (vnode.tag === "option" && key === "value" && vnode.dom.value == value) return
|
if (vnode.tag === "option" && key === "value" && old != null && vnode.dom.value == value) return
|
||||||
// If you assign an input type that is not supported by IE 11 with an assignment expression, an error will occur.
|
// If you assign an input type that is not supported by IE 11 with an assignment expression, an error will occur.
|
||||||
if (vnode.tag === "input" && key === "type") {
|
if (vnode.tag === "input" && key === "type") {
|
||||||
element.setAttribute(key, value)
|
element.setAttribute(key, value)
|
||||||
|
|
|
||||||
|
|
@ -90,6 +90,47 @@ o.spec("form inputs", function() {
|
||||||
o(select.dom.firstChild.value).equals("")
|
o(select.dom.firstChild.value).equals("")
|
||||||
})
|
})
|
||||||
|
|
||||||
|
o("option value defaults to textContent unless explicitly set", function() {
|
||||||
|
var select = {tag: "select", children :[
|
||||||
|
{tag: "option", text: "aaa"}
|
||||||
|
]}
|
||||||
|
|
||||||
|
render(root, [select])
|
||||||
|
|
||||||
|
o(select.dom.firstChild.value).equals("aaa")
|
||||||
|
o(select.dom.value).equals("aaa")
|
||||||
|
|
||||||
|
//test that value changes when content changes
|
||||||
|
select = {tag: "select", children :[
|
||||||
|
{tag: "option", text: "bbb"}
|
||||||
|
]}
|
||||||
|
|
||||||
|
render(root, [select])
|
||||||
|
|
||||||
|
o(select.dom.firstChild.value).equals("bbb")
|
||||||
|
o(select.dom.value).equals("bbb")
|
||||||
|
|
||||||
|
//test that value can be set to "" in subsequent render
|
||||||
|
select = {tag: "select", children :[
|
||||||
|
{tag: "option", attrs: {value: ""}, text: "aaa"}
|
||||||
|
]}
|
||||||
|
|
||||||
|
render(root, [select])
|
||||||
|
|
||||||
|
o(select.dom.firstChild.value).equals("")
|
||||||
|
o(select.dom.value).equals("")
|
||||||
|
|
||||||
|
//test that value reverts to textContent when value omitted
|
||||||
|
select = {tag: "select", children :[
|
||||||
|
{tag: "option", text: "aaa"}
|
||||||
|
]}
|
||||||
|
|
||||||
|
render(root, [select])
|
||||||
|
|
||||||
|
o(select.dom.firstChild.value).equals("aaa")
|
||||||
|
o(select.dom.value).equals("aaa")
|
||||||
|
})
|
||||||
|
|
||||||
o("select yields invalid value without children", function() {
|
o("select yields invalid value without children", function() {
|
||||||
var select = {tag: "select", attrs: {value: "a"}}
|
var select = {tag: "select", attrs: {value: "a"}}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue