价值保持不变
Value stays the same
我想在提交到服务器之前更改输入字段的值。它应该删除口音。例如,如果用户键入 "Café",它应该搜索 "Cafe"。
第一次工作正常,但当我想尝试不同的输入时,它又回到了我的第一个输入。
例如:
我搜索 "Cafe"。然后它会正常搜索 "Cafe"。
当我现在要搜索 "Fruits" 时,它将搜索 "Cafe",因为值不会改变。
首先我创建了一个像这样的table
<table cellpadding=0 cellspacing=0>
<tr>
<td>
<form action="?" method="Post" style="" name="f_suche">
<input name="ID" type="hidden" value="{$smarty.session.POOL.P_ID}" />
<input name="SID" type="hidden" value="{$smarty.session.POOLBLOCK.PB_ID}" />
<input name="addq" type="hidden" value="" />
<input name="lastq" type="hidden" value="{$LASTQ|escape:" html"}" />
<div style="padding: 10px 0px;">
Pool:<strong> {$smarty.session.POOL.P_NAME}</strong> <br>
</div>
<div class="input-append">
<input class="input-xxlarge" name="q" value=qx id="q" type="text" data-provide="typeahead" autocomplete="off" >
<button class="btn btn-primary" type="button" onclick="form_submit();">Suchen</button>
{if count($key) > 0}
<button class="btn btn-primary" type="button" onclick="sx.save(); ">Speichern</button>
{else} {/if} <span id="save_rep"></span>
</div>
</form> {if count($key) > 0}
</td>
</tr>
</table>
table 工作正常,我得到了我应该得到的一切。
var eingabe = "{$smarty.post.q|escape:"quotes"}";
var pid = "{$smarty.session.POOL.P_ID}";
var pbid = "{$smarty.session.POOLBLOCK.PB_ID}";
{literal}
function replaceDiacritics(str) {
var returnStr = '';
if(str) {
for (var i = 0; i < str.length; i++) {
if (diacriticsMap[str[i]]) {
returnStr += diacriticsMap[str[i]];
} else {
returnStr += str[i];
}
}
}
return returnStr;
}
var qx = replaceDiacritics(eingabe);
console.log("Test: " + qx);
$('#q').attr('value', qx);
$("#myq").html(qx);
function form_submit() {
show_loader();
// document.getElementById("q").value = qx;
document.f_suche.submit();
}
如您所见,每次单击按钮时,我都尝试更改该值,但这就是重点,我找不到更多的解决方法。我还尝试插入另一个按钮,它应该只用不重音的词覆盖当前值,这也没有用。
我认为这与我尝试更改值的方式有关,但我想不通,我该如何换一种方式。
更改了以下方式。正如我所想,在将最新值提交给服务器之前,我无法将最新值分配给输入字段。所以我按以下方式修复它:
function form_submit() {
show_loader();
var eingabe = document.getElementById("q").value;
var result = replaceDiacritics(eingabe);
document.getElementById("q").value = result;
document.f_suche.submit();
}
function replaceDiacritics(str) {
var returnStr = '';
if(str) {
for (var i = 0; i < str.length; i++) {
if (diacriticsMap[str[i]]) {
returnStr += diacriticsMap[str[i]];
} else {
returnStr += str[i];
}
}
}
return returnStr;
}
此时更改是正确的,当用户点击按钮时,最新的值被分配给输入字段,发送到服务器,没有重音。
我想在提交到服务器之前更改输入字段的值。它应该删除口音。例如,如果用户键入 "Café",它应该搜索 "Cafe"。
第一次工作正常,但当我想尝试不同的输入时,它又回到了我的第一个输入。
例如: 我搜索 "Cafe"。然后它会正常搜索 "Cafe"。 当我现在要搜索 "Fruits" 时,它将搜索 "Cafe",因为值不会改变。
首先我创建了一个像这样的table
<table cellpadding=0 cellspacing=0>
<tr>
<td>
<form action="?" method="Post" style="" name="f_suche">
<input name="ID" type="hidden" value="{$smarty.session.POOL.P_ID}" />
<input name="SID" type="hidden" value="{$smarty.session.POOLBLOCK.PB_ID}" />
<input name="addq" type="hidden" value="" />
<input name="lastq" type="hidden" value="{$LASTQ|escape:" html"}" />
<div style="padding: 10px 0px;">
Pool:<strong> {$smarty.session.POOL.P_NAME}</strong> <br>
</div>
<div class="input-append">
<input class="input-xxlarge" name="q" value=qx id="q" type="text" data-provide="typeahead" autocomplete="off" >
<button class="btn btn-primary" type="button" onclick="form_submit();">Suchen</button>
{if count($key) > 0}
<button class="btn btn-primary" type="button" onclick="sx.save(); ">Speichern</button>
{else} {/if} <span id="save_rep"></span>
</div>
</form> {if count($key) > 0}
</td>
</tr>
</table>
table 工作正常,我得到了我应该得到的一切。
var eingabe = "{$smarty.post.q|escape:"quotes"}";
var pid = "{$smarty.session.POOL.P_ID}";
var pbid = "{$smarty.session.POOLBLOCK.PB_ID}";
{literal}
function replaceDiacritics(str) {
var returnStr = '';
if(str) {
for (var i = 0; i < str.length; i++) {
if (diacriticsMap[str[i]]) {
returnStr += diacriticsMap[str[i]];
} else {
returnStr += str[i];
}
}
}
return returnStr;
}
var qx = replaceDiacritics(eingabe);
console.log("Test: " + qx);
$('#q').attr('value', qx);
$("#myq").html(qx);
function form_submit() {
show_loader();
// document.getElementById("q").value = qx;
document.f_suche.submit();
}
如您所见,每次单击按钮时,我都尝试更改该值,但这就是重点,我找不到更多的解决方法。我还尝试插入另一个按钮,它应该只用不重音的词覆盖当前值,这也没有用。
我认为这与我尝试更改值的方式有关,但我想不通,我该如何换一种方式。
更改了以下方式。正如我所想,在将最新值提交给服务器之前,我无法将最新值分配给输入字段。所以我按以下方式修复它:
function form_submit() {
show_loader();
var eingabe = document.getElementById("q").value;
var result = replaceDiacritics(eingabe);
document.getElementById("q").value = result;
document.f_suche.submit();
}
function replaceDiacritics(str) {
var returnStr = '';
if(str) {
for (var i = 0; i < str.length; i++) {
if (diacriticsMap[str[i]]) {
returnStr += diacriticsMap[str[i]];
} else {
returnStr += str[i];
}
}
}
return returnStr;
}
此时更改是正确的,当用户点击按钮时,最新的值被分配给输入字段,发送到服务器,没有重音。