所以,我已经制作了一个表格并且一切正常,但是,因为当我添加两个单词时我必须使用特定的调查系统,例如“Mary Ann”它在表单字段中广告“%20” 。表单是使用$_GET
生成的,但现在不是主题。
所以它看起来像:Mary%20Ann
我正在尝试用jQuery解决这个问题。
这是我的代码,但它不起作用:
$(window).ready(function() {
var comp = $('.comp-name').val();
var compCheck = $("comp:contains('%20')");
$(comp).load(function(){
if($(compCheck) === true) {
$('comp').html(' ');
}
});
});
如何解决此问题,以便动态地看到间距?
答案 0 :(得分:2)
如果此行之后comp
的值:
var comp = $('.comp-name').val();
是"Mary%20Ann"
,然后你使用的任何调查系统都被破坏了:这是一个URI编码的字符串,其中一个不合适。最好的解决方案是使用不破坏的调查系统。
非常好的第二好是尝试解决它。由于这是一个URI编码的字符串,您可以解码它:
comp = decodeURIComponent(comp);
但是,这是非常好的第二个解决方案。修理或更换测量系统是正确的解决方案。
直播示例:
var comp = "Mary%20Ann";
snippet.log("Before: " + comp);
comp = decodeURIComponent(comp);
snippet.log("After: " + comp);
<!-- Script provides the `snippet` object, see http://meta.stackexchange.com/a/242144/134069 -->
<script src="//tjcrowder.github.io/simple-snippets-console/snippet.js"></script>
答案 1 :(得分:0)
这是为了防止其他人遇到同一问题:
戴维的评论引导我找到正确的答案。当然,我在这里遇到了错误的方法 - 我试图用Javascript,jQuery来解决这个问题。正确的解决方案将是PHP,因为它比基于客户端的语言更安全。 urldecode成功了。所以,这是我实现的代码的一部分:
PHP:
$compname=isset($_GET['companyname']) ? urldecode($_GET['companyname']) : '';
HTML:
<input class="cmp-name" type="text" name="companyname" value="<?=$compname?>" required>