Если p
имеет атрибут contenteditable="true"
, вы можете подписаться на его событие keyup.
Например, если это ваш html
<p id="TargetP" contenteditable="true">
Some text
</p>
<input type="hidden" id="TargetHidden"/>
<!-- This anchor is just for the purpose of the demonstration -->
<a href="javascript:;" id="ShowContent">Show hidden's value</a>
, этот скрипт сделает всю работу
$(function() {
// declare the function that will take value from p
// and put it into the hidden
function updateHidden() {
$("#TargetHidden").val($("#TargetP").text());
}
// Call it for the first time to update the hidden
updateHidden();
// assign it each time the key is released when the p is being
// edited
$("#TargetP").keyup(updateHidden);
// just a dummy action to show the content of the hidden at the
// given time
$("#ShowContent").click(function() {
alert($("#TargetHidden").val());
});
});
Вот рабочая демонстрация
Однако я бы предпочел onsubmit
событие form
, если оно, конечно, синхронно.
<!-- onsubmit="return false" is placed to prevent the form from being
submitted remove it in production. -->
<form id="TargetForm" onsubmit="return false;">
<p id="TargetP" contenteditable="true">
Some text
</p>
<input type="hidden" id="TargetHidden"/>
<input type="submit" value="Submit me" />
<!-- Demo's helper link -->
<a href="javascript:;" id="ShowContent">Show content</a>
</form>
И скрипт
// declare the function that will take value from p
// and put it into the hidden
function updateHidden() {
$("#TargetHidden").val($("#TargetP").text());
}
$(function() {
// Call it for the first time to update the hidden
updateHidden();
// subscribe to the submit event of your form
$("#TargetForm").submit(function() {
updateHidden();
});
// dummy function for demo purposes
$("#ShowContent").click(function() {
alert($("#TargetHidden").val());
});
});
И рабочая демоверсия
PS Если у вас есть какие-либо другие условия.Прокомментируйте, и я сделаю обновления.