所以我正在构建一个消息传递应用程序,用户点击一个按钮,会显示一个jquery提示符,要求用户键入他们的消息,然后理想情况下使用单独的ajax函数发送消息。
以下是相关代码:
jQuery消息提示功能:
function getInput() {
var text = prompt("Enter message", "");
if (text != null) {
document.getElementById("demo").innerHTML = text; //failed attempt at updating the value just using the id of the input.
}
}
HTML:
<form name="messagesend" method="post" onsubmit="return sendMessage(this);">
<input type="hidden" id="demo" name="message" value="I want to update this field with the result of the javascript text variable" />
<input type="hidden" name="regId" value="<?php echo $row["gcm_regid"] ?>"/>
<input type="submit" class="send_btn" value="Volume-Vibrate" onclick="getInput()"/>
</form>
如您所见,我想要更新的字段是value
中包含的字符串,即发送的消息。如何使用用户在文本提示中放置的结果更新?
非常感谢任何帮助!
修改
将jQuery函数更新为以下内容:
function getInput() {
var text = prompt("Enter message", "");
if (text != null) {
$("#demo").val(text);
}
}
这可能是一个不同的问题,但是当点击我最初发布的HTML中创建的按钮时,它会显示提示并输入消息,但我放置的默认值仍然是正在发送的消息。是
onsubmit="return sendMessage(this);"
在jQuery更新值字段之前执行?如果是这样,无论如何都要解决这个问题?
如果有帮助,这里是sendMessage
,它使用ajax将消息发送到php脚本。
HTML value
字段(我试图使用getInput()
从jQuery提示符获取用户输入字符串)成为data
变量,其中还包含注册ID指定的邮件收件人。
function sendMessage(formObj){
var data = $(formObj).serialize();
$(formObj).unbind('submit');
$.ajax({
url: "send_message.php",
type: 'GET',
data: data,
beforeSend: function() {
},
success: function(data, textStatus, xhr) {
$('.txt_message').val("");
},
error: function(xhr, textStatus, errorThrown) {
}
});
return false;
}
答案 0 :(得分:4)
HTML字段没有内部HTML(标记是自动关闭的),它有值(和value
属性)。
但是当你使用jQuery时,你应该使用它的函数:$("#demo").val(text)
答案 1 :(得分:1)
正如@Lucas所说,$("#demo").val(text)
有效(见JQuery documentation)
另一种做同样事情的方法(按名称引用输入字段):
$('input[name="demo"]').val()
但是,名称不必是唯一的,而id应该是唯一的(请参阅此SO answer)。将id="demo"
添加到您的输入名称会更安全 - 在这种情况下过度杀伤,但这是一种很好的做法。