2014-02-27 51 views
0

我有一个注册表单,要求提供一些基本的详细信息。我希望能够将该人的名字添加到同一页面上的问题中,而无需提交表单来执行此操作。将HTML更改为输入字段更改

ie当页面加载时,问题将是“参加者1是否是委托人?”,但是当他们键入他们的名字时,它会变成“是马修是代表人吗?”

的问题是在同一页上,所以我知道这必须用jQuery做莫名其妙...

任何帮助是极大的赞赏。

+0

模糊(函数(){/ *在这里做你的事* /}) '; – PHPglue

回答

0

如果你的HTML看起来是这样的

<div>Is <strong id='name'>Attendee 1</strong> a delegate?</div> 
<input type='text' id='name-input'></input> 

然后,你可以像这样没有jQuery的做到这一点:

window.addEventListener('load', init); 

function init() { 
    var input, name; 
    input = document.getElementById('name-input'); 
    name = document.getElementById('name'); 

    input.addEventListener('change', function() { 
    var value = input.value; 
    if(value.length === 0) { 
     value = 'Attendee 1'; 
    } 
    name.innerHTML = value; 
    }); 

} 

当然,你可以做jQuery的同样的事情,但是这是这正是双向绑定库和框架为自己提供的东西。这就是我在AngularJS中做这件事的方式。

<div ng-controller='MyFormController'> 
    <div>Is <strong ng-bind='name'></strong> a delegate?</div> 
    <input type='text' ng-model='name'></input> 
</div> 

而且JS:

function MyFormController($scope) { 
    $scope.name = 'Attendee 1'; 
} 

角,灰烬,骨干网和淘汰赛都是好东西来看看!

0

您应该使用OnBlur属性。调用OnBlur中的一个函数,该函数从输入中提取数据并将其放入标签中。

在HTML中使用标签来围绕您想要动态替换的数据。使用JavaScript或JQuery查找这些标签并替换其中的数据。

0

你可以这样做:如果没有必要进行数据库查询,然后`$( '#元素')

<html> 
    <head> 
     <title>Title</title> 
    </head> 
    <body> 
     <input type="text" id="name" name="name" onChange="document.getElementById('name_new').innerHTML = document.getElementById('name').value"/> 
     <div> Is <strong id='name_new'>Attendee 1</strong> a delegate?</div> 
    </body> 
</html> 
+0

在你的HTML中写入你的JS可能是一个坏主意。 http://programmers.stackexchange.com/questions/86589/why-should-i-avoid-inline-scripting –

+0

你是对的,但他可以把onChange监听器转到另一个js文件,感谢您的评论。 –