我正在我的Django应用程序中进行问题/答案测试,并向用户提供所需答案的提示,我希望输入字段与预期答案字符串具有相同的width
。
目前我正在做的是:
后端,拖着回答:
width = ''.join(random.sample(answer,len(answer)))
前端,当我的ajax请求成功时:
$('#inputNotDisplayed').text(data.width);
// put the answer string in a hidden div that has
// the same css characteristics as my answer receiver input (font-size, font-family...)
$('#answerInput').width($('#inputNotDisplayed').width()).focus();
// give its width to the visible input that is meant to received the answer
// and give the focus to the input
$('#inputNotDisplayed').remove();
它工作得很好,但它有一个主要缺陷:你可以通过检查收到的数据很容易地得到洗牌的字符串。
我看到的另一个选项是,当Q和A数据存储在数据库中时,我可以计算答案的宽度,以便在询问问题时产生答案,但如果我更改了我想要使用的字体,那该怎么办?它的大小 ?
有没有办法知道特定字体的每个字符大小的宽度,是否可以在后端使用?还有其他想法吗?
另外,我没有使用等宽字体而且我不想;)。
答案 0 :(得分:1)
如果您不想向用户发送字谜,您可以使用单色字体或至少使用一些字符长度的字体(例如,所有细长字母都具有相同宽度的字体,所有中等字母将具有相同的宽度,所有宽字母将具有相同的宽度)。执行此操作后,您可以使用等效的wiidth字符替换随机字符串中的某些字符。