用户不能更改Javascript输入值

用户不能更改Javascript输入值,javascript,submit,validation,dom-manipulation,Javascript,Submit,Validation,Dom Manipulation,我对Javascript比较陌生,在更改值时遇到一些问题 以下是我的Javascript: function printResults(results, numMeals){ calories=Math.round(results); protein= Math.round(results/4*.4); carbs=Math.round(results/4*.3); fats=Math.round(results/9*.3); document.getEl

我对Javascript比较陌生,在更改值时遇到一些问题

以下是我的Javascript:

function printResults(results, numMeals){
    calories=Math.round(results);
    protein= Math.round(results/4*.4);
    carbs=Math.round(results/4*.3);
    fats=Math.round(results/9*.3);
    document.getElementById("calories").innerHTML="Total Calories: " + ('<input type="text" id= "totalCal">');
    document.getElementById("totalCal").value=calories;
    document.getElementById("protein").innerHTML="Grams of Protein: " + ('<input type="text" id="totalProtein">');  
    document.getElementById("totalProtein").value=protein;  
    document.getElementById("carbs").innerHTML="Grams of Carbs: " + ('<input type="text" id="totalCarbs">'); 
    document.getElementById("totalCarbs").value=carbs;  
    document.getElementById("fats").innerHTML="Grams of Fat: " + ('<input type="text" id="totalFats">'); 
    document.getElementById("totalFats").value=fats;
    calories= Number(document.getElementById("totalCal").value);
    protein= Number(document.getElementById("totalProtein").value);
    carbs= Number(document.getElementById("totalCarbs").value);
    fats= Number(document.getElementById("totalFats").value);
    document.getElementById("search").innerHTML= ('<a class="btn" href="search/'+calories+'/'+protein+'/'+carbs+'/'+fats+'/'+numMeals+'">Find Meals</a><br>');}
函数打印结果(结果、数值){
卡路里=数学圆(结果);
蛋白质=数学四舍五入(结果/4*.4);
carbs=数学四舍五入(结果/4*.3);
fats=数学四舍五入(结果/9*.3);
document.getElementById(“卡路里”).innerHTML=“总卡路里:”+(“”);
document.getElementById(“totalCal”).value=卡路里;
document.getElementById(“protein”).innerHTML=“蛋白质克数:”+(“”);
document.getElementById(“totalProtein”).value=protein;
document.getElementById(“carbs”).innerHTML=“克碳水化合物:”+(“”);
document.getElementById(“totalCarbs”).value=carbs;
document.getElementById(“fats”).innerHTML=“脂肪克数:”+(“”);
document.getElementById(“totalFats”).value=fats;
卡路里=数字(document.getElementById(“totalCal”).value);
蛋白质=数字(document.getElementById(“totalProtein”).value);
carbs=数字(document.getElementById(“totalCarbs”).value);
fats=编号(document.getElementById(“totalFats”).value);
document.getElementById(“搜索”).innerHTML=(“
”);}
并编辑这些html输入字段:

    <div class="span2" style="text-align:left">
    <span id="calories"> Total Calories: -</span><br>
    <span id="protein"> Protein: -</span><br>
    <span id="carbs"> Carbs: -</span><br>
    <span id="fats"> Fats: -</span><br>
    <span id="search"></span><br>
    </div>

总热量:-
蛋白质:-
碳水化合物:-
脂肪:-


这可以用于设置初始值,但是,当我手动编辑文本字段的值时,它不会在提交时更改值。例如,如果根据计算将原始卡路里设置为2000,然后将文本字段编辑为2500,则搜索结果仍然为2000

是,将其更改为
,而不是更改
innerHtml
,处理
单击事件并获取事件中的值。否则,在值更改之前生成搜索链接,因此它包含旧值

此外,没有理由动态生成输入,在html中定义它们,只根据需要更改


作为补充说明,我真的建议您研究jQuery,因为它可以让这些内容不那么冗长。

当我阅读您的js时,函数的最后一行设置了一个带有初始搜索值的链接
Find Find
?当然,如果在之后更改,链接将不会返回值??搜索innerHTML中的值都取决于printResults函数中的results变量。你怎么称呼这个函数?您需要使用文本字段值调用它。