使用javascript字典创建分配列表,有两个元素:text(标题)和text2(散列锚链接)
var cell2 = row.insertCell(1);
var element2 = document.createElement("input");
element2.type = "viewButton";
element2.value = todoDictionary["text"];
var link= todoDictionary["text2"];
element2.id = rowID;
element2.setAttribute("onclick","window.location.hash = link");
element2.className = "viewButton";
cell2.appendChild(element2);
当显示列表时,当我点击项目标题时,它会在转到链接之前暂时调出键盘。我认为这是因为它是一个“输入”项目。我在document.createElement中尝试了“label”和“text area”而不是“input”,但标题没有显示。 任何方式使它仍然是一个按钮,但标题是不可编辑的?
编辑: 新问题@david托马斯 当我将元素类型更改为按钮时,它现在忽略我放入文件的“viewButton”css。首次发布时,它保持了正确的风格。在第二次启动时,它默认为jquery CSS。但是,如果我添加新项目,它们会以正确的方式出现。
如果我将元素类型留给“viewButton”,样式仍然存在,但它也允许编辑文本。
我之前遇到过这个样式问题,我通过在jquery CSS中添加“viewButton”样式来解决这个问题。 CSS style not sticking
关于如何覆盖样式的任何想法?
诺尔
答案 0 :(得分:2)
为什么使用element2.type = "viewButton"
?试试type="submit"
或<button>
。
答案 1 :(得分:2)
我认为问题是type
无效,因此input
正在呈现为文本 - input
而不是(除非在其他地方发生更多JavaScript或jQuery)解决这个问题?)。
那就是说,你可以简单地使用:
// set the element to a button type:
element2.type = 'button';
// prevent the element from being able to receive focus:
element2.readonly = true;
虽然如果你想要一个按钮,你也可以创建一个button
元素:
var element2 = document.createElement('button');
参考文献:
答案 2 :(得分:0)
我相信你的意思
element2.type = "button"
我发现这个关于“按钮”类型的问题: <button> vs. <input type="button" />. Which to use?