<progress value="0" max="100" id="p1"></progress>
<div class="allQuestion"><?php for($i=1; $i<=10; $i++){?><input type="radio" name="Dq[1]" value="<?=$i?>" onClick='incr();'> <?=$i?> <?php } ?></div>
JS
<script type="text/javascript">
function incr() {
var v1=document.getElementById('p1').value;
document.getElementById("p1").value= v1 + 1;
}
</script>
我的目的是让1-10点之间的问题只能点击一次,但输入是由php生成的,所以如果我把onclick放在输入内,我点击的每个收音机都会增加进度条,我只需要收音机只点击一次且进度条保持相同%,让每个问题1%一次点击它只增加1%,当重新点击它仍然是1%。
或者我也不想使用jquery。
答案 0 :(得分:1)
我不是百分之百确定你在这里问的是什么(根据下来的选票判断其他人也是如此)。
在StackOverflow上提问的一些一般提示:
在提问时尝试并遵循上述建议,但列表绝不是全部,但您也应该仔细阅读guidelines on asking questions here。
现在回答你的实际问题。
我猜你想要你的代码如下运作:
假设我已经解决了上述问题(如果没有,请告诉我),以下代码应该适合您:
HTML:
<p id="answerResult">1</p>
<div class="allQuestion" id="allQuestion">
<input type="radio" name="questionAnswer" value="1" /> 1<br />
<input type="radio" name="questionAnswer" value="2" /> 2<br />
<input type="radio" name="questionAnswer" value="3" /> 3<br />
<input type="radio" name="questionAnswer" value="4" /> 4<br />
<input type="radio" name="questionAnswer" value="5" /> 5<br />
<input type="radio" name="questionAnswer" value="6" /> 6<br />
<input type="radio" name="questionAnswer" value="7" /> 7<br />
<input type="radio" name="questionAnswer" value="8" /> 8<br />
<input type="radio" name="questionAnswer" value="9" /> 9<br />
<input type="radio" name="questionAnswer" value="10" /> 10<br />
</div>
JavaScript的:
// the paragraph that contains information about your currently selected answer
var answerSummary = document.getElementById('answerResult');
// the container of the radio buttons
var answersContainer = document.getElementById("allQuestion");
// the radio buttons
var answerOptions = answersContainer.getElementsByTagName("input");
for(var i = 0; i < answerOptions.length; i++) {
answerOptions[i].addEventListener("click", function(event) {
// change the paragraph to show the currently selected value
answerSummary.innerHTML = answerSummary.innerHTML + " " + this.value;
// disable all radio buttons once an options has been selected
for(var i = 0; i < answerOptions.length; i++) {
answerOptions[i].disabled = true;
}
});
}
此代码的实际链接: http://jsfiddle.net/44mvrftu/4/
我已经非常重构了您的代码,试图使其更具可读性,易维护性和易于理解,我改变了一些事情:
我希望我能说得对吗?如果您有任何问题,请告诉我。
答案 1 :(得分:0)
问题不明确,如果您只想使用jQuery .one(),see details here
表示只想点击一次答案 2 :(得分:0)
嗯,我不知道你想要什么?您可以同时使用PHP和Javascript,但这取决于您想要做什么。
jQuery解决方案:
$("input").one("click", function () {
alert($("input[type=checkbox]").val());
});