与此问题类似: jQuery append fadeIn
但解决方案并不适合我。
基本上试图询问用户他们的名字,然后在下面附上问候语。 最好是在淡入淡出时,我尝试了一些我在这里遇到的解决方案,但无济于事。
" document.name_form..etc)在警报内部调用时也能正常工作。
谁能看到我出错的地方?
function doit() {
$('#item2').append( document.name_form.fname.value +"U WOT");
}
(函数doit
从html表单" onSubmit"触发,并成功触发警报等)
答案 0 :(得分:2)
.append()
应该用于添加新的DOM元素。要将文本添加到现有元素,请使用.text
。
function doit(e) {
e.preventDefault();
$('#item2').text( function(i, oldtext) {
return oldtext + $("form[name=name_form] input[name=fname]").val()+"U WOT";
});
}
您还必须使用preventDefault()
来阻止提交表单。为此,我将<form>
更改为:
<form name="name_form" action="" onSubmit="doit(event)">
实际上,您append()
的工作正常。你的小提琴有两个问题:
您已选择onLoad
。这会导致所有代码都在window.onload
函数内,因此它不在全局范围内,这是onsubmit
属性中使用的函数所需要的。使用No wrap
修复此问题。
您没有阻止默认提交。除了我在上面执行此操作的方式之外,您还可以通过在false
中返回onsubmit
来执行此操作:
onsubmit="doit(); return false;"
答案 1 :(得分:0)
我认为问题是绑定onsubmit时函数doit不可用。
您可以尝试将变量声明为变量:
doit = function(){
http://jsfiddle.net/otnn848g/2/
顺便说一句,如果你不想提交你可以绑定的形式,而不是onsubmit