gpt4 book ai didi

javascript - 在客户端更改文本框值并在服务器端读取

转载 作者:行者123 更新时间:2023-11-30 12:45:12 25 4
gpt4 key购买 nike

我有一些文本框,我在客户端 (javascript) 中更改了此文本框的值,值已更改但是当我在回发后在服务器端读取时实际上值没有更改。我的文本框不是只读的或禁用的。请注意,我使用 updatepanel 并且我的回发是异步的。有解决此问题的想法吗?

更新我用 this jquery 在 ie 中支持占位符,但它会导致我的文本框的值等于占位符值,并且当我的回发是异步时会发生这种冲突。为了解决这个问题,我使用下面的 jquery 代码:

function EndRequestPostBackForUpdateControls() {
//*****************************For place holder support in ie******************************
if (runPlaceHolder != 0) {
//alert('end');
$('input, textarea').placeholder();


var $inputs = $('.placeholder');
$inputs.each(function () {

var $replacement;
var input = this;
var $input = $(input);
var id = this.id;
if (input.value == '') {
if (input.type == 'password') {
if (!$input.data('placeholder-textinput')) {
try {
$replacement = $input.clone().attr({ 'type': 'text' });
} catch (e) {
$replacement = $('<input>').attr($.extend(args(this), { 'type': 'text' }));
}
$replacement
.removeAttr('name')
.data({
'placeholder-password': $input,
'placeholder-id': id
})
.bind('focus.placeholder', clearPlaceholder);
$input
.data({
'placeholder-textinput': $replacement,
'placeholder-id': id
})
.before($replacement);
}
$input = $input.removeAttr('id').hide().prev().attr('id', id).show();
// Note: `$input[0] != input` now!
}
$input.addClass('placeholder');
$input[0].value = $input.attr('placeholder');
} else {
$input.removeClass('placeholder');
}
});
}}
function safeActiveElement() {
// Avoid IE9 `document.activeElement` of death
// https://github.com/mathiasbynens/jquery-placeholder/pull/99
try {
return document.activeElement;
} catch (err) { }}

function BeginRequestPostBackForUpdateControls() {
//*****************************For place holder support in ie******************************
if (runPlaceHolder != 0) {
// Clear the placeholder values so they don't get submitted
var $inputs = $('.placeholder').each(function () {
var input = this;
var $input = $(input);
if (input.value == $input.attr('placeholder') && $input.hasClass('placeholder')) {
if ($input.data('placeholder-password')) {

$input = $input.hide().next().show().attr('id', $input.removeAttr('id').data('placeholder-id'));
// If `clearPlaceholder` was called from `$.valHooks.input.set`
if (event === true) {
return $input[0].value = value;
}
$input.focus();
} else {
alert($(this)[0].value);
$(this)[0].value = '';
alert($(this)[0].value);
$input.removeClass('placeholder');
input == safeActiveElement() && input.select();
}
}
});
}}

$(document).ready(function () {

var prm = Sys.WebForms.PageRequestManager.getInstance();
prm.add_beginRequest(BeginRequestPostBackForUpdateControls);

prm.add_endRequest(EndRequestPostBackForUpdateControls);

});

我使用这段代码在 add_beginRequest 中发送到服务器之前清除我的文本框值,并在 add_endRequest 中设置值(用于 ie 中的占位符)。任何人都可以帮助解决这个问题吗?谢谢。

最佳答案

您使用 javascript 更改了 TextBoxvalue,并且相应的 ViewState 未更新。您可以使用 hidden 字段将值存储在 javascript 中并在代码后面获取它。

HTML

<input type="hidden" id="hdn" runat="server" />

JavaScript

document.getElementById("hdn").value = "your value";

代码隐藏

string hdnValue = hdn.Value;

关于javascript - 在客户端更改文本框值并在服务器端读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22755856/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com