Javascript php在输入中单击一次

Javascript php在输入中单击一次,javascript,php,Javascript,Php,js 我的目的是让1-10点之间的问题只能点击一次,但输入是由php生成的,因此如果我将onclick放在输入中,我点击的每个收音机都将增加进度条,我只需要收音机只点击一次,进度条保持不变,让每个问题是1%,一旦点击它只增加1%,当重新点击它仍然是1% 或者,我也不想使用jquery。问题不清楚,如果你说你只想单击一次,那么我不知道你想要什么?您可以同时使用PHP和Javascript,但这取决于您想做什么 jQuery解决方案: <script type="text/javascript

js


我的目的是让1-10点之间的问题只能点击一次,但输入是由php生成的,因此如果我将onclick放在输入中,我点击的每个收音机都将增加进度条,我只需要收音机只点击一次,进度条保持不变,让每个问题是1%,一旦点击它只增加1%,当重新点击它仍然是1%


或者,我也不想使用jquery。

问题不清楚,如果你说你只想单击一次,那么我不知道你想要什么?您可以同时使用PHP和Javascript,但这取决于您想做什么

jQuery解决方案:

<script type="text/javascript">
function incr() { 
var v1=document.getElementById('p1').value;
document.getElementById("p1").value= v1 + 1;
}
</script>

我不是100%确定你在问什么,从反对票来看,其他人似乎也是

有关StackOverflow问题的一些一般提示:

你的问题应该很清楚,很难判断你在问什么 理想情况下,您的代码应该以可读的方式呈现。您提供的PHP/HTML代码都在一行中,考虑到问题是关于JavaScript功能的,而我们无法访问您的其他PHP代码,PHP代码在这个问题上毫无用处,并且会使回答您的问题更加困难 在问这样的前端问题时通常是有帮助的,这意味着减少了重复问题的浪费时间 当你问一个问题的时候,试着按照上面的建议去做,虽然这个列表并不是包罗万象的,但是你也应该仔细阅读

现在谈谈你的实际问题

我猜您希望代码的功能如下:

用户只能选择一个选项一次 选择选项后,应将其添加到段落的数字内容中 假设我已获得上述正确信息,请让我知道如果没有,以下代码应适用于您:

HTML:

JavaScript:

<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>
以及指向此代码的链接:

我已经对您的代码进行了相当显著的重构,试图使其更可读、更易于维护、更易于理解,我做了一些更改:

更好的变量名v1永远不应该是变量名 在HTML中没有“onclick”,您永远不应该真正这样做,因为这意味着您将HTML和JavaScript表示和功能混合在一起,这使得可维护性更加困难,并且在某些方面性能可能会降低。如果您发现我添加onclick事件处理程序的方式令人困惑,请告诉我,我会尝试帮助您理解,或者您可以修改上述代码,在HTML中使用“onclick”。 我删除了PHP,这是我创建一个工作演示所必需的 我使用了纯JavaScript,在jQuery中实现它会更容易、更干净,还可以确保它在较旧的浏览器中工作。上面的代码只在现代浏览器中可靠工作,但您没有提到jQuery,所以我假设您没有使用它。
我希望我没弄错吧?如果您有任何问题,请告诉我。

您是说一旦选择了答案,用户就无法更改其答案吗?抱歉,让我转告againi,当用户只能在1-10点之间单击时,他正在尝试制作进度条,因此每个问题都可以单击一次,但br可以再次单击。我仍然无法100%确定我是否理解,我在下面为你发布了一个答案,如果我有什么错误,请通过评论告诉我,我会看看我是否能帮助你:请再次阅读我更新我的帖子,谢谢~~我的意图是让1-10点之间的问题只能点击一次,但输入是由php生成的,所以如果我将onclick放在输入中,我单击的每个收音机都会增加进度条,我只需要单击一次收音机,进度条保持不变%,让每个问题都是1%,单击一次仅增加1%,重新单击时仍增加1%。好的,我想我明白了,我现在没有时间写完整的答复,但我会稍后再给你回复
$("input").one("click", function () {
alert($("input[type=checkbox]").val());
});
<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>
// 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;
        }
    });
}