Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/456.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Html.textbox用于由库添加时不呈现_Javascript_Html_Html Helper - Fatal编程技术网

Javascript Html.textbox用于由库添加时不呈现

Javascript Html.textbox用于由库添加时不呈现,javascript,html,html-helper,Javascript,Html,Html Helper,我目前正在一个网站上工作。到目前为止,一切都正常工作,除了我将一个函数移到了一个库中,以便它可以重用 该功能是一组两个单选按钮的单击事件。单击“是”按钮时,需要显示一个文本框及其标签。单击“否”按钮时,它们需要消失 标签在“是”按钮上显示良好。整个功能在页面上运行得非常完美。但是,当我将脚本移动到库中以便在项目中重用时,文本框不再出现。我尝试过用输入标签替换,结果类似 相关html: @ModelType PROJECT.Form @Code ViewData("Title") = "

我目前正在一个网站上工作。到目前为止,一切都正常工作,除了我将一个函数移到了一个库中,以便它可以重用

该功能是一组两个单选按钮的单击事件。单击“是”按钮时,需要显示一个文本框及其标签。单击“否”按钮时,它们需要消失

标签在“是”按钮上显示良好。整个功能在页面上运行得非常完美。但是,当我将脚本移动到库中以便在项目中重用时,文本框不再出现。我尝试过用输入标签替换,结果类似

相关html:

@ModelType PROJECT.Form

@Code
    ViewData("Title") = "PageTitle"
    Layout = "~/Views/Shared/_LayoutPage.Desktop.vbhtml"
End Code
<script>
    $(function () { initFunction() })
</script>

@Using Html.BeginForm("Process", "Home")
    @Html.AntiForgeryToken()
    @Html.Hidden("page", 4)
    @<div id="formColumn" class="grid_19 alpha">
        <h3>Process Title</h3>
        <fieldset>
            <legend>Page Title</legend>
            <ol class="grid_18 push_1">
                //a couple yes/no questions here, works fine
                <li><label>Question 3</label></li>
                <li>
                    <ol id="appendHere"class="horizontalList clearfix">
                        <li><label>Yes</label></li>
                        <li>@Html.RadioButtonFor(Function(a) a.Q3Radio, True)</li>
                        <li><label>No</label></li>
                        <li>@Html.RadioButtonFor(Function(a) a.Q3Radio, False)</li>
                    </ol>
                </li>
                //more working stuff
            </ol>
            <div class="clear"></div> 
            <button name="submit" id="submit" value="submit" class="push_1">Submit</button>
            <button name="cancel" id="cancel" value="cancel" class="push_1">Cancel</button>
            <button name="back" id="back" value="back" class="push_1">Back</button>
        </fieldset>
    </div>
End Using
@ModelType项目.表单
@代码
ViewData(“标题”)=“页面标题”
Layout=“~/Views/Shared/\u LayoutPage.Desktop.vbhtml”
结束代码
$(函数(){initFunction()})
@使用Html.BeginForm(“进程”、“主页”)
@Html.AntiForgeryToken()
@隐藏(“第页”,第4页)
@
过程标题
页面标题
//这里有几个是/否的问题,效果很好
  • 问题3
  • @Html.radioButton(函数(a)a.Q3Radio,True)
  • 没有
  • @Html.radioButton(函数(a)a.Q3Radio,False)
  • //更多的工作内容 提交 取消 返回 终端使用
    javascript:

    function initFunction() {
        $(function () { $("input[name=Q3Radio]").click(function () { handleQ3Check(this) }) })
    
        var check = true
        function handleQ3Check(elem) {
            if (elem.value == "True") {
                    if (check) {
                        $('#appendHere').append('<li class="appended"><label>Amount: $</label></li><li class="appended">@Html.TextBoxFor(Function(a) a.appendAmount)</li>')
                        $(function () { $("input[name=appendAmount]").blur(function () { handleFees(this, 'stuff') }) })
                        check = false
                    }
                } else {
                var appendedInput = $('.appended')
                if (appendedInput != null) {
                    handleFees(appendedInput, 'stuff')
                    $(appendedInput).remove()
                    check = true
                }
            }
        }
    }
    
    function initFunction(){
    $(函数(){$(“输入[name=Q3Radio]”)。单击(函数(){handleQ3Check(this)})
    var检查=真
    功能手柄Q3检查(elem){
    如果(元素值=“真”){
    如果(检查){
    $(“#appendHere”).append(“
  • 金额:$
  • @Html.TextBoxFor(函数(a)a.appendAmount)
  • ) $(函数(){$(“输入[name=appendAmount]”).blur(函数(){handleFees(this,'stuff')}) 检查=错误 } }否则{ var appendedInput=$('.appended') if(appendedInput!=null){ handleFees(附加输入“stuff”) $(appendedInput).remove() 检查=正确 } } } }
    如上所述,我曾尝试用输入标记制作文本框,但没有出现。这种情况下出现的是
    Amount:$@Html.TextboxFor(函数(a)a.appendAmount)
    与此完全相同


    在我进一步尝试调试该问题时,如能提供任何帮助或向正确方向推进,我将不胜感激。

    当您将Javascript包含在同一个vbhtml文件中时,它起作用的原因是vbhtml文件在被发送到客户端浏览器之前已被编译。查看通过查看源代码或使用开发人员工具/或您喜爱的浏览器中的类似工具呈现的javascript

    当你要求javascript写出

    $('#appendHere').append('<li class="appended"><label>Amount: $</label></li>
    <li class="appended">@Html.TextBoxFor(Function(a) a.appendAmount)</li>')
    
    $('#appendHere')。追加('
  • 金额:$
  • @Html.TextBoxFor(函数(a)a.appendAmount)
  • 就这样


    从您的评论来看,您似乎已经意识到这一点:-)并且正在取得进展。

    我认为您将Razor和Javascript混为一谈。Razor@Html.TextBoxFor将在服务器上被“翻译”,而不是在Javascript插入它的客户端上。等等,没关系,我明白你说的了。但是问题是,
    标记也不起作用。它只是简单的不显示,这只是显示文本。你知道有什么方法可以让文本框显示出来,或者可能是什么错误吗?标签出现了,所以标签应该显示出来。如果使用Chrome,请按F12并打开开发工具,查看控制台中的内容。这可能会显示javascript的错误。也可以试着移除一些东西,然后慢慢添加。如果它在页面上起作用,那么查看源代码并查看实际呈现的HTML是什么。那么您是说这个
    $('#appendHere')。append('
  • 数量:$
  • 不起作用?@roryok不,它不起作用。我正在再试一次,看看能得到什么。我使用的是IE11和他们的开发工具,没有任何javascript错误。使用
    标记,它实际上甚至没有在html中显示标记。只是一个空的标签集。你每天都能学到新东西。虽然公平地说。。。启动这个项目的同事似乎也不知道,因为当我问他时,他不知道为什么它不起作用。谢谢你在这件事上的迅速帮助。没问题,一个措辞恰当的问题总是能很快得到回答。幸运的是,上周我路过,犯了类似的错误!